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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 literal 5488 zcmd^D`#+QY|940!mAk`IBxxxnq#TO4P0q&=);6^cb7&eBu^1tiP*QWOInzv|sY^x7 zsl*jg8y|DLms!%}aB~~0eXsR-d>`M>AMp9@dp&l&_I|(K*RDO@&+GMkK404%q`Sk0 zb?WQnFRBF#4F0g_a^zsVQXt^TLi+%6@fsUwuN4!Zi_r&b3A7qR~_Yp5hvmY9E@5 z40-4ko#+!mJ9CAGz?a+NtK4tCLX%h+@-q^edLgVJAoekd#Ig@aiT5|xFZw7DfgtIcRCh^Mq&Om7RKc92*gzMM~D3F1wT-ZnG2bIkOv z`LTNz$M0Jl&p2UDK_KqBI%k|gP|@fDpHmbBo{A<>@CaG}zRb?19FJg;&`jdx>X6Ho z5!YEH(pzuj2SNZ9`g#(JMWRxvXbJ_-qN1Tm8wCMU(QOnwNF}wE<3SdQUyc|2zKBA5 zokM>^Ww9D^vRN!@?$Z`3OHkfc&H`Cf5Tvw8si2hJ-(TCtWeLD?zLX`9f>dgE7WF;t z@#jam!(}D>iYJrohWBq;K>4{Bo&)^?@@o(AGNg0qpN@>hJF#7#J8F92^=N z>i*Z4{vkdn1>2-jP%8b>-Tke%hcAU@vc%Zf*k6DBH8C+En4F%Pni5XU@}*LNR605H z&#Z7lDwWMuzrW676c zrAoLsn7(f?kjyW6VWsZ<0%NB`fFUof!s6&Xy3A0bx|Tj7nb(6!zTf^UBi|y-bfD|R zVt(|;T(^l|jRmTMMYQnR(Z`l-i=&Yt`_8^vv_of2>;l-W<-*p8C#$=@~?Hqg%JyUlaZP|K0yBj z>V`|^Jk32&I55)TF6_}${j^v#l5~a^NjA|2f>Bj7S?1a4ntPf9qy9Yh2sS0SxN_Ef z)X72A`4%?vNw^gzy20?BRuoz|Y#}I@iv=mQLiLu$?9-y$a1L)GTaWj>zq@yw(WlGK zc@yNJ*+tFY+co(&rd85;1)kWQ3$_pat7*eVztZcAmici!*nIQ%taf{*Sll1cWGnhc zp3`wTO$WNFiMJXtQxcvjz0xjrq1QK6f^k5J)aQZ~eSoeBHQN60?(s*{l6bSpwtiYU zQGP4e^f7MQwVyV&Sc$W!mp}=G@OZSCC_xhpRsE>c^i$ zfo6=wIo2Cdtt;`f5Vt=vHa*H_L~Z$tLZsb^(V&OC^0{D5bwY3ZsL%HfY(XTd$>a5k zip9seF5e2`uL~ap7YCM7)(2X~lf9}1Zjr<{&#gkX>#+z|fB86-V*LJmy3d&i7cWd% zbdl7wS}5BAxAFc|t(Zr!&=~G2tu~4>;AVU)@CROX`OS?B7g8B8K|c?uL`WW+d_Ae- zGIQQr_p7px-a+)YoqF<;dH8ok!OLT;EnCRDVe7JyEu79dy=P%3K=t*cQy~#5rmH+- znP(2T+Wo_Ce~Ku0v*Xwj(sX_0nS36bGew(@NMFz12xqi3J&5TwWpB62*>IAerbU_? z^9r4AYT+viSL4L#VR$jjeC{Xbyxs_i(Ig+%Ff~a$?iC&NAm#eCnM~>7lX4zD7@Hch-KT2M|TsHI2N59f}AzjR45UplyNxzlZh;d|#* zz*rp5t9ULoo_B=rk`>3>;~crGur{ubwuU~O=6v*uwdkIi?v9Oic9%y zT@<0nlw2r`&;+2E<@v#IH6hG+J~bY5yW`?G(nVLOrU)!UpJIM`o3p2*62QLGy9#81 zg{92Cee9f4ZpvIR(Z}&9L459@uA4&UL_b%oXJgf|=kFcf;F?oKGn+Pg>tR;wjLXx# zH4+Z76YLxBFkt#$V8`Z&l{|8%D|g7>6Gqtx$1oxyq+Sc9hL>WM?vb&KJ~y|=`3DLZ zLHRgWEZ1vIjzNJ^9RZrSa1A_OuT3o@D7Bq=eJMC?Q#vixTjPfM&{=?rzZ#Z((eO*H zw`gd3IzNg28k|)@zIdf=y9ryfij!4zO(;)r>3N-|0@!WMi&rF=Z7IO5=Y-f);MdYM zZFJb%>6*3+rh7RX3;WmaMAqNK#2O(79bQ7KUA;17jvgxSwPv1d*m10|&qPtwzWqpH zUpfBHI9GjK?O`1zRdQi7Dww-|r&Fa#r{O+-p!mU=h9ichxnh8P7`Cor3*9#h2gyla zqVXwNW@)qzk%RG!Rl0r;0*AgM(XwgK7x+9p{j01~3=|(M?cQX(;YArixY0o0qs!aP z^??BO_5I7Y1P^c5Cl4oNW9EkVye8LuFOISMPOx+O7J2Z`E7{K6tTdy8ccS86mJ!yJ zg?LSQj4Qq&`aE)bmHr5)0hLf0VK^~boox4^`tEzfa%O|+wj}Ts5}Wc)VJi}w&@GF$ zliiA(ZOPrxuFZ-fH8vA&Z?bH{s&Y0K*Trq-Y}}2ByRa8oAMg7cAwvi`|E*Bf@Ybg) z$rbe#J%V7}+$k%YSm=VvaHDd^Il`^%S#>8q0nlpI*h>UV#cxZW`X0M$@BF)XwuWGm z7@2M*xx&_!&mTDcRypf1glgwJgrm?A&`zGyyF5PV1w5&5!wV!BG;H-f@*oxf_cQvc zGbd1Ehl?8^l(Ig0Q-x}wPM4~AlPO}L=3v@(ajmb2e^Nz2Ky}ThUSjeZdy>UK1}cQd zFjc8~B?gSTntFYK=PTJ?O#)(xe=EKb-DNrMk+H|ic>07jamPU!hZ2`$+)}`(Agx6K z;m*+Nd1D#Rw7q2!!TDWFJ)IC%{hs=01;UQE5SdIJjzX|>^@Ob6NY|mt!0GXSW3K>E zai*WGAEJWq<6OTH^ygBYuuQjDBd1E3K+Vwho5yc7X4v7kkU)*3?j0yxe*QCSwE;O% z5#pNOxbd+8%I?nU!ZoBpM#L=XA4(W^KG@D@`;uI!j2T@$!GgBEy+_U#sm{n~fG{(x zxL{6uy6%=kqrQ*DpeW*>L)1!>kI+*mJkPXt;a24e)jnSUVk#bS)+J-(ikS_IO*UOe zzUSK-SoeAXC&p58aT+lK=<<>~@1YHXp06PKlm#8KmIrjc%Ay?=0!kFXm+jE)>o6se zcivV7$x#Gu(G3b$0g7Koj^E~8=g5$<`t~`fFsqjcA<~8Hg6^id3@OpSYedGxJYz+N ze`DguM0afdUmDe1GDcM^UkZrT*K$otxQ7Ia1FjHb{UO=$k!j48KM%W#FjqH*n;>X# zE@k(@foB;qFm`>6T@K@N{Gn>u2Xj`ee`VcTmFSa2QAV_}h45Dk=!)59MX-x7w?WoWq zQZzifE2{`J^{$N6sPPiH(FRvEXsDZq2kTg$C*LGCv-*^GqQi>M3dZ-w$Ay=}F4CB#<;dwVh9!Av+E3)>T_f_X z%)vd0$QM;Mh(t(?{RGtRm zbx=j26R~j;jPR<=#`a0h!^JArn9Vnf@iIKd4X6u7pxwQX---B5pAX?dalWNcj${r z8#sDSb(uU}H&t7JLB}#VGiH6~ngXjTQQ!~jB%9#%K6;&o%cg$JaV%uhD?i}R0fJbc zj@+KG8fpMg!!YhdNoQAx2@qC4OfF@V#oMV}{I)BurpquO zwIb&GosMr%3M6qezq8pP?}P(-EP&I!E0>wG3WG~h`exCt#U{S9?+wuh!1P1j3?I;N z4+1EyaTYOrV~>A2Reyr3bC1e^9j*)8dm32fLmZM|3c53%^5|mVEPT|MYtJ{EOTrw_ zZ&jve@-3mE_AfY&4%2>pO%d2^iwY_9jr(f6o$xcm>YW_W_#V<9%%2L=k54kyiXolp zTXR+B?Li7!t+#j?t1=JC18`*-Rj1Z=Krwi&jBZTrX`^d&=Du>s%b0skK()x+y$6c= z4xIJA23fP%#dC2_FtPB1TfO!pnYwIx7}dS$BsU8pQ)hQZF^`OK5J-58gNL3h58f~2 zy~e#lJ7sQpXe;(HOLKg#{Xx@@k>|euLv`L7(&x*{(c6v`*#RvQ2F*G@h&$rf7%O5p z#~NK?FfnZ3KX4@$4he+7z##^hF&}K{ert>ORNuOEKX%`g{D`fF&CXcW85`!#k84Op zzG*++s}YixaPN{ZI}((13w;xUo)pAad#e>B%83!};OJ41rm(&3R?@a>&npMk!l0S|C@ckudV(vI}{e z=7asa3Il}37t_MC+@HYlVxRuwpS-b_*U?aO=VSkXknQmpOx(6Vo&j|YrMyeqFy569 zaIOi2>?e=G_hMid4Qlvvksn!-iYH{mQ}KsoDsmZ?S-kz-bbMc7Ers{nr!tdw!42gJmC7HXD$@G{>YNE{zZ9(M47F7%b1H0+6n9@O zOPuvMGXY`o7knq(mx}XIK^AIn%@Cmcg^r%0InJ-LvkM&m-XppuvMr^mp15(PBC0!E zm;H^h$;lLIe6i-IJacdh(DN4E$21=~`!|vPW9LQG%9dETsWP_;0_bP}5GlzVy}gM~ z8SDDmZFCmU8jCz{5AfbsfV-YFU-StcT))$wF#M@$IQLZrXw{l*#Ax`!mh4)8pqh7D zvMWx#0JHKy$CVRxkKA6?XU^WP2#ml-jVd4yw8t@}{zCzrU*ems#y$RF9PT>zTaP?f zBCRlAbSq(&O)7wbjDCGu1DP811qU+J23cm9D6Zi|Y0Jz$=6*Irwvvnqs7HpcrP(V2 zCCUUD*#e1H<3^M;d(N*k)xHxf!Y!AqAZw9YyYF)rL2*8ng<3JO`gA(kOCt}L_L?_q zqUeyu%Ly1e>}$~-Fs6*sSlm9cyOz+7t+9Q^`_}`VL)?4y_&e6XRq24*47U2A_f+hIfuRso=zvMY%j2K1k0LqVJ1kh8^5bxOQBI=rOxHqF&3{ix|3mU^&vTfHWufb81+yb~$u* z$u%_UW6Myy@SaD&bZGf#_hM8Fcj;;Lam(Bv5@Qj6mv+R4_~qsci!hHsi+Md!M3hG! z;ifad6^-zh@%xB*2aTfd$IKQ9{Q$R*cn@4)wB>cl>bc3Y?j92s^`WlPd8?S#*Ownk zJ0%MaFR+Xa&CJFY)WIoEKy z!-szV)*F=6%z=whoERmgT@83KH8ReXiN%a56DM#PKQqO8qF<8^n@?G&i`U$6A^#1= vV~*Bl@qGW|$^7?*@5=538px{{SkB)pgM*HjvHStqe_~E{?zUAn=Mw%0PcUQL 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); }