From acd222c82ed7ce3adf14a6a7e2b5f2d5fd0edcb7 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Fri, 6 Nov 2015 12:39:39 +0100 Subject: [PATCH] update readme --- NEWS | 2 +- README.md | 8 ++++---- images/CSpeed.png | Bin 18534 -> 36897 bytes images/DSpeed.png | Bin 5488 -> 9700 bytes programs/paramgrill.c | 3 ++- 5 files changed, 7 insertions(+), 6 deletions(-) mode change 100644 => 100755 images/CSpeed.png mode change 100644 => 100755 images/DSpeed.png diff --git a/NEWS b/NEWS index c0cf789eb..1c7facdcc 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,5 @@ v0.3.4 -Faster low cLevels +Faster fast cLevels v0.3.3 Small compression ratio improvement diff --git a/README.md b/README.md index 54fc53bf4..b8ff8783e 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ It is provided as a BSD-license package, hosted on Github. |master | [![Build Status](https://travis-ci.org/Cyan4973/zstd.svg?branch=master)](https://travis-ci.org/Cyan4973/zstd) | |dev | [![Build Status](https://travis-ci.org/Cyan4973/zstd.svg?branch=dev)](https://travis-ci.org/Cyan4973/zstd) | -For a taste of its performance, here are a few benchmark numbers from a number of compression codecs suitable for real-time. The test was completed on a Core i7-5600U @ 2.6 GHz, using [fsbench 0.14.3](http://encode.ru/threads/1371-Filesystem-benchmark?p=34029&viewfull=1#post34029), an open-source benchmark program by m^2. +For a taste of its performance, here are a few benchmark numbers from a number of compression codecs suitable for real-time. The test was completed on a Core i7-5600U @ 2.6 GHz, using m^2's [fsbench 0.14.3](http://encode.ru/threads/1371-Filesystem-benchmark?p=34029&viewfull=1#post34029) compiled with gcc 4.8.4, on the [Silesia compression corpus](http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia). |Name | Ratio | C.speed | D.speed | |-----------------|-------|--------:|--------:| @@ -23,7 +23,7 @@ For a taste of its performance, here are a few benchmark numbers from a number o [zlib]:http://www.zlib.net/ [LZ4]:http://www.lz4.org/ -Zstd can also offer stronger compression ratio at the cost of compression speed. Speed / Ratio trade-off is configurable by small increment, to fit different situations. Note however that decompression speed is preserved and remain roughly the same at all settings, a property shared by most LZ compression algorithms, such as [zlib]. The following test is run on a Core i7-3930K CPU @ 4.5GHz, using [lzbench], an open-source in-memory benchmark by inikep, on the [Silesia compression corpus](http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia) +Zstd can also offer stronger compression ratio at the cost of compression speed. Speed / Ratio trade-off is configurable by small increment, to fit different situations. Note however that decompression speed is preserved and remain roughly the same at all settings, a property shared by most LZ compression algorithms, such as [zlib]. The following test is run on a Core i7-3930K CPU @ 4.5GHz, using [lzbench], an open-source in-memory benchmark by inikep compiled with gcc 5.2.1, on the [Silesia compression corpus](http://sun.aei.polsl.pl/~sdeor/index.php?page=silesia). [lzbench]:https://github.com/inikep/lzbench @@ -32,9 +32,9 @@ Compression Speed vs Ratio | Decompression Speed ![Compression Speed vs Ratio](images/CSpeed.png "Compression Speed vs Ratio") | ![Decompression Speed](images/DSpeed.png "Decompression Speed") -Zstd entropy stage is provided by [Huff0 and FSE, from Finite State Entrop library](https://github.com/Cyan4973/FiniteStateEntropy). +Zstd entropy stage is provided by [Huff0 and FSE, from Finite State Entropy library](https://github.com/Cyan4973/FiniteStateEntropy). -Its memory requirement can also be configured to fit into low-memory hardware configurations, or servers handling multiple connections/contexts in parallel. +Its memory requirement can be configured to fit into low-memory hardware configurations, or servers handling multiple connections/contexts in parallel. Zstd has not yet reached "stable format" status. It doesn't guarantee yet that its current compressed format will remain stable and supported in future versions. During this period, it can still change to adapt new optimizations still being investigated. "Stable Format" is projected sometimes early 2016. diff --git a/images/CSpeed.png b/images/CSpeed.png old mode 100644 new mode 100755 index 88d302c8a1d1755b16286f6df0ec812da334175b..338c27b27291b95377c947ac8b3111656a812fb5 GIT binary patch literal 36897 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

O>AbEu{$$DJ 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 O26?*rxvX0#LT=B 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

2ZoLxMXH^BB34A>%N=vRdzB9ZxcklMStK)4h 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 delta 5191 zcmaFj{Xt8yGr-TCmrII^fq{Y7)59f*fq^lKfr0TD2Qvc$1C#dVnu&@U^`>F%qt=r&HRFB=;Z5m~ygW8_7X-hdh zrQ*o4l+zn49xY3G3RcuMcjt^1d!}sMxOc|%jT@)TTytp3#;41UEZcZ`({p(xw`S`>1B`pZ+!ay^pq**rcJ3oF?Y`8*)#7hUHoX}@|XMfp4fBv^wW+1 zkF@~zSW&fXUJagsV%_E2JojHB|`hn}$uiw0R^Y-oAckbLdcjNK(JC9EPKYir? z|I`2fKR$Qv)x`^s{vY`dLZ=@*c<}Jy!)MQ)J$?D^_3PKqUw?e`|Nqnf|6hLi{_**< z|NlX}4<9~!-Q35>$jDNCc=xQyUd-0@f>%9V978JN-p=i=mkAX;t{h#HBf5k&zClzs zEPHFmqs3e7q(ZhtxvFM~24u2C$FI1cu{J+fN?zBo7`MdG6%{uu?FS!)}jj2B$vSz*eYb+#eO zxE_g34Q5Z;m31*WZS^%TdG|j$du->a|JO=q1?(NM&+fM!|dUqmwo!NDd*o42kd`@36n-#y_X2*N`JL%@DzJ1!b=j}G1+{@47 z)ywPptDNqM|9Z?+?rL*CWAd$KpR#48vMwIKANuBG^!)Ph1O7XIb6cO^bvA5e?!Tln z^-q&;{^;UKw{5HmTL09yJa^A#yF3Z)jah~NLOqv6#n`V=^U78J`SrE+*$Q#_Lv0dU zeV<(Kmam;HnqPaBMgB+|$5vmH=JfX|{J-{8CM9*R5`B98*4EXIf99CJa8~vHkQk!z zf+JL0EAo|$Hshbq%5NO!Z@1VeEL@`?$~8UU(3SdApR_j=+nko-sR+(1<2GXntXmta z>ErtS(eX8o^Y=(v{0K1PSsgp?*8VH6=e{fJ=h@Gvyz0<_NwpWv_Dk5!;C0Rtm#_Hr zASnOcfkTg&pR>jP>@QCFDQflU@0CRDd#9shYYe2#Oj|62s;ee-l@@)N`rp8LR{S1S zRokt-Po^t7)^Fu~67JT;dvJEgB-L9h%UpVX3RXW|mYXHsU%vb9%zGucKzy4Z6~{v zN?#;HPO}Fu{2<5|q8-Ji`h;;sh;)*KuH-qbOyOK1>!iA0Vuh^BS2L9>d<(Ag)XN0y z?u)8347lySJ%w|{*^8jSG1ggj(P6FgUP+4u*G!q;9+xm$aBW#i=aZ{aPsAthit7H8 zBov-~l}E;NwdpB+wbZSPCdKYG(qA(3=hhknQLdH3E5fG5Uw;;Ut;Hl5B=Y0_F2@;B zfpx5H41y@%5SXH2lSh z?MJixLwuG`egZ4s=o@2fu)^SdsEz5jixwKGLyP)lXX#OjFi*_{#UEx!RYDiKE*xeWg4kP{j5-U@R0V0DS%GLKJL&C@?hc|OY8Dt}m7C3maY&!bD$ zgjw{ud4Usx&Oa7v#o z>w2JWBvY2;(LYHG%-oIlORPA1A&-r3h3XVg@LWjUrrO|Pbf`D)iE?I$J{ zH`^3WtzW=iaeGzS$BOT5#aBOPyM{{qV8{pMkFyuDpB_=UXcV`Q{{tv9IGXFPOtPB0 zhO60qpKhr2?YCv$b*8K~J+HrPZPwr{(#e2 zqc`(h^c*e*ZMAvOH8Wni_UW>)4ZjsxRX)fXVrb;>&%hqq~u zKz{Unaks7IR-y}cz!m1L%`5a4uxw?1anG{-R_PT`SlPY0oUvfq#auSN6=ws^>a%6Z z{!;aJSPM=kpbR<7gxUR7Jvdlm)<&Kbg5{=7nI_@uIWp7gbme_ooB9H_E=nuNtxFB{ zFb)M3HU;(uK5wH6`ASS3=PF-qQ_#A(VIn9v5Ih|WE47gG=0)8lhU{{ZBgNK#;nsFr}f#g zx;1ni7`L)+5esO#<@@5VOvVaXH)T*U@?A1=>d@%H+bY>u0D_j2^NM*Vb+u`A11aD9`*ullEI;j^T(c4n+x z;F-Jc<>|7Z)zjmToQ$5YziMgT2dn4#v2Sg!@3*`Da#mwD7t^+hQAhv0`l|QFYL}r? zL_Wt~hSOKx-7U19y>xBN+7-$<(p#&Z$4jce{9M~{b>Fkz*N<22wf2br_OSd^{_>5} zrE60sWoGYXtlk)V#Z9j{$oErva(&j%ub=jtecbpx`=edht@P*>S5L3MUwg3Y_xoyd z?YEm{uN>2PYO>G(AMUp3b{@8e zTkDH=->q4)YH6dZc=9W`hD~Sn)4EsIzUe&qYH6eE>58jU-|XL?ckKC1?TuTnoRgcm zb_PpSd@JiK>*MnKbC0=Q%+uX^x?d+`Rp@DbCC9BxHhH~W6;@|?DR{TdRn@*Jt3(ZU z6{|#SWeLr_^CxQlxru9Tt@yb$PWiscRkugxpIW0V=hYwPSTXgH?Wfi##ed52D?}A{ z7BO!XatY5{5Z3U*L?Y|&M7v`QTlbytn${3y&-8AN^IGvmf07nlV=pu=aCn=+B!9U1 z)rFsq#m$VWB-ccDSii>uTE3Yx_Ro{#6`DiqTHYUxwT45XZf$& z6BgXs8NVaabE@!Um!F~LJsz7C&&bBCn&qc{X8kPoipx11)nY~qUAG?kvuduxyo{^& zV)oU&UFB70n7L|g)c!Dm_{G-lO@) z)|A1>wL(-O+JQ6cuVC!X#;E!~p!SRZ zlkJKNukl}G60r<;?R?>UV_Ot|3#j?yaRfwaG%dgA@RoxKR2oG!fk>-EATrAdRD5|g zeeQ0ozooSZRHUDtsLN2%D_$x4==+<44E|gHxFH&jdrUqG)F<$>RjhhyzQ`$&Luy&r zwD{2bZ6eZ#I(}~5^k>z)hUp7#34YE_J-Z<7xk++Q$uz&^$|*lXuUlRUiMB0`oE5(( z)NNAMbpJW0Tg22GS3MD*yyRAviD zc5{`_N^~F1e!{(#@dvN+g0PFtTPOF-Dm(Rj(SZ%WGg5o$T~XI83siA*L#4d_BUov)D~=O zy9KVbrgq3F>oaDp<~XmF7;e+=+B~ag-csL`o}&qU*z;q zS!PApl=x8YfCY*o6Q72sKKBTG`{~NRrEy=cq+T@AFa`Oko8P9gU}e?0=^FcAwF!Ef zwO9s4TLlNsi2ur8|H0|)gs6i?abI#*yq8H1|1DgnY{qeQ-Krh~m7pDR^;HOH4;v)V7gy!D>)eZ!Te=k?v<*ZxnvlXm4_{m=TtCKpnR zuUzHwYn~nWyWB47vBqjq+XLKNnLxSln*7bF(ks5Y*GLOx*-kWNX1`LU2&(*RCrsC2 z+`4$;GjZmv%A9lEn71zG$YSGLu{J%|?ulVrkK2`hJ^a^fHfA+@Ps?z4D}Fp|^TsUZ z&)pltf1BD}is%TEo)zD-^VY|DQ)c&`TQkxg7=&4$OMAc(F8xj7p2D`Q^`s{1cFtPuP8v_If&)RoDLGX({b5A+9SIX}PNbTP|OBOsgY$}GmMY4r|k zCBf{AOKv?~nRimu%m2>#KFMWiNA~`>z?9!R(e3Iy3->DLyLoA4|AXF}i?U4)d0jW@ z=AFFo{F|m_+bu6g*ZlZ>*S7xV-MKL}Kic2*KeMyjTCaJ(+pG9|Q+4H(y4!Exd|Rr2 z^6I7dZTxjG>6@s3y7g!6w`EoSv$E>FwqAXE@6oRm zwcJ@+hSd{lKQ4S8v(@)}ihq21wQcDiwofnP{QRF;@6Px6|Jkng@Xnmc|4;q->b@m< z74N~d`|1ycYrVdbR((<2H<0zx>BXv9v6|1bHqZU6U$}ee%CcV_zZ25KwLiB#(2HKT zx^(_GX6|!=`=%$~D!ukHdQ+Q&?c(*{O#YhHhHqM5p?ACTvA*AW#Safo*IwJ4WA#Ys zc$|_tIS`*jnl* zd!={Hm(z_=#@nXd3S-=w28$f(F^?_nOxI)N*0cRwzf}3OM-G4Vqniv23=E#GelF{r G5}E*cQd=hg diff --git a/programs/paramgrill.c b/programs/paramgrill.c index 5c67772a7..520acc1e1 100644 --- a/programs/paramgrill.c +++ b/programs/paramgrill.c @@ -738,9 +738,10 @@ static void BMK_benchMem(void* srcBuffer, size_t srcSize) const int maxSeeds = g_noSeed ? 1 : ZSTD_HC_MAX_CLEVEL; for (i=1; i<=maxSeeds; i++) { + const U32 btPlus = (params.strategy == ZSTD_HC_btlazy2); params = g_seedParams[i]; params.windowLog = MIN(srcLog, params.windowLog); - params.contentLog = MIN(params.windowLog, params.contentLog); + params.contentLog = MIN(params.windowLog+btPlus, params.contentLog); params.searchLog = MIN(params.contentLog, params.searchLog); BMK_seed(winners, params, srcBuffer, srcSize, ctx); }