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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 Lvp;grI)?urFvR~A literal 18534 zc-pmmbyQSc`0gMQ1|=yiD4;abjndLBE!{|WD$wz_x|A;;q0^byWf1CckjVhNftcpHG|*1S$-^cl-tp`1#IT;n!9m5OM?bA561(mJaYs9BTn3YguzW zYr8j=x}djj49%=*%yg}Z8ENQfm~_1ubU`4YArXE)IeYchT7M^up_uu4wXgmEiNtPtPSS%tIfOcBxZW%cCy(x?5sL2$K}Y{oc1N29naIk01~zn z&&~6+x}EX>{|7zyIrs(we(O$6#|!+ZiF_Xw_=tvuy$yWKeLa7~_J8}R-P^Y}R*3Mm zZ0s-pyEscUX1s@|qaZI}cnJEeu|hzV|4@-?nDMDz-f8%(xx10uEi}l>IwKEFcTgn3 zeNulp=Q>xrzp2gHl zJ30-VD2@%B5_n~~=)Ee(W(-FcRylC_fDx@Ht?%qRb% zbTHIJmP}eoojgC>Pp6t;$5yFW=}hyz0lfoNsmc$ttX*OlO*H66g%3yNU#-d)i&=VY zmr~he=jPcduFf=t#aWh?3WZHLX|Yurg$d5i%DV_S7QdJi4jVHl>9F)lEvu^W5)94Q zOHfkh{Ycq@FQ4;zvjtBOO;(+auXu2_dzv7 zr-$w8D@KvUir;54!nP7t?hd@89?}gm4cY|fWW%=>Z8}?)$9UrYDAk=Z)l)7(%x&dZH8bq%eI(kg}f=*4@hkuq{bXY3@(2 z{9T555!KaR%FMALDt(s78dS1*uGy6P1I)9v97fD41)PNkD;9{pNenwSio!p4M-1-y zLZapw+H-%HL&9079{aio6_40(+Dv6bd^uv4L)?ryyRQ9;?wWO_ARYcr?p^|LEuyZ`uK*Y!SaFsTU{wEvd zE%{Q^hDC*XN3F^q1j$H7MJqWITBRnWZ53yyz_?6H8PD4MH{g4l!wf!681UCJfRu2c zOUYWrzmj%}rwp$dPFECXDR|wfz8e;oV<#=9p@`R;^`?}w@?cx~ZVai2!jNI&lj3)= z(;_DIB2wZxOGI*zCh0)A{j>e=j61d;M|ApI)*00l)q{e`YfE*OMD(Y^s^~RS59SShYO=K5wrt7p<-YG0R(UsEU95L83_%1R)sY%`S3|ZW?sQ@Mf1={w7sq6 z#FIy6eU(cm4vxh7am;qxa5`}TIwUmD{uRD)b~aOMSvDSAx?SfwBfQw&LY``FJ|1N$ z3^9IHGzA%PO2y9aj|U%8jWU;Flg9Y?`&|+Eb-k9*_wk6#%(C=XSoFRHIr?#TgKkRq ziPO4{^ryYfY3f9BYvD35C;rp;#W7o>21&c7QrBnY>&jc-s^bxsC8lhQMit5G+iqz; zMz@ge`C}y?f0$>C&8H`yolpli`kh?X!FOs8Rn1MbbWSB-y6xHoj*RzU7fb=N zm@3!ix^?~9?l+yxvd3xVSCzB=$2{NXrdq&F`l&~}%Zj_s8ymVBqY)9N%H>7#cC;%& z*mm^}&Xy}x=E{$6XbV><%jfkNqwB%a1ogXRg>6>6ZL@j44Uv2cKDsbps`nxRz-UBV zG;G*3j~f0@3007KebzdjlFC%`nQ&>1Av0jcdv6}3BKx3u3Ic9nNUVXjJ|4>^!(ME- zL!I~fZ(U?G zX{$lIE~OOMG1m9Tf&{3fw*vvi_43~1=X6+5J(e=D64F>U4G9&~c_gLP`bFca z4TuA-dr(KJ_wU7|r3DMnb74t!rrwk{SGv7+OpCT6Qz3a!-# zpR^nU^S>0b;-I@Cw~CoNnJA=lk6$n&)GM^A=q$SoZKyv<2PnsR^J^=$r(6wd3f*fg z!EGr8O1G};s%#xisd1+N(NDK2GBa+Ksku0J7$fX?@8Ev)MudNy#J(w!dR)R8d?pkLfZ&(qY#Zt+Vhrm@u4VwE*Xh zOcwTCKLp2F^0B>jwx6$HKuO>C_bckP_;N#doR02G^)5a((6NZrazFm0K1wmg$=1y= zQ+2yFfL58fF_<3vuTslr;SI8?wH%jrweqPkg2R_KKT*fryD!Cu!+w~K$DX>kL+ZaT zdex!w>R}%@HOjhlW2(diKH;#nOX}bG0?9b-rt5^@kqSPH~IrB|t;{NNVW1T{p zc`&eY6d9Rj^yt|nYaQDT z18zf(62Fyx=X&t)2Koqz>W@!P(p54I4Q>R!@XX*!S?>-xp6$rj;jKRvcs z&az?`+yK8DSn=Ze;@#xXEDa61X*&9s;o3ttmdN#)jw-M%pk~AC?>p%s`5=Xae390a ze0r$P_vj~JUG6zfw^_hFfQF6d|xjT{XP0v0q9zQYH@4drUP!#3E#S%n`oi|9i+)G3e?ws=F@zJ?%Oj` zt@~wq(KLHw=4|%tgk^}>KujbX=igCu=%&sYo%WkRJR>-IccKJC_H9SY?;*XD$$1ad z)<=TH=jjWloquFwCe`VMZ=+)3GGt=FEzKH8@%+55ElCm29{saV_~+6_oDMN(ecg%8 zv>F7%EF^W!NO`fb6RVsRc5O*YB(KZAL|%W1`MIH>fTDzE_-G$Fw-^f;sXTLCG3n1G&ZV-K@9yyA&r zcll~W2`3LHnK2~3cAllj9bcnG=p1DH^WGF{G0CZ(=A`gh!W(+75m$j$5nP}|^Q(qd zP`su*B}}bI)Hqu~ai|Rmj<{k=ofLeum*|s}qbG9~8(giOg4rTQZhQWaZ0ybIp~&Mh zEaVGh@<)3izRF*rktr)ZStdK>w6t3sL~iG1fEL^oBJ;0l-NpK8z?e3*(Ti_RXZv)qZcDWSoVYKqZBW{&wJwB*%VsQ4 zGci{6i0lFgVQDe?Ln9d!ljYv;khzj=x^7E|f1uM}o`rB-?7PBCJ;Rhdiz8nwz2hcJ z9EZNvg)U}~)fwKp0Cz6}^nSxL%<%ry!s_C^4?(Um$MDlYl1?Nd+{$aaz9t2gAgwCe zGWu8&5bFdB1eWVQm2}t}r_Q{;tOhQtWr*(!e$`H3u^FV~d?uomyh7#ypsiLd5BQ2JS8CrP_HQ3(m=80BybU;XNo5xl(i!ANzA-}H4=^7URIG1lemJMVj$(TnmMnIGJF&xOhwE%LWKCW2m&gYo4KI_w zTT3>}^zG)KhI@BX>po_(jW3@WpvV^pL100ul4?dC#mgcHiV;Tgy8C=5 zHoD!-btN}cQV>8|Vu9^TP2;RG?4-H-AMqNlt=jY5gpn%u?ev%-{Y$`EbnCMz^s?N# zzI=AF+f6W!cfabBA9x#Ttc>T5e?>Ift%v)>;WYy=Q`i;0^sb05{vkVnLyly5cGOiq{0}3h=rS|S z3RE7tr~=UfICPFPDfL^?OMY;^^Qs1uP4yE%e^4Z>wtx9}3?7!T|HMaIymin2GwP7s zGMT8cv&f!QWs(FG{s9a5T6@R16r6tTOoo^f+BKN9^q0=POHS38sAQT}M8uL1`ON}; z1HmzVK{DMpAF5;%vPK1Kq$_Du7yznE06_1hh8k9e!qd!9h)A6xZIF<&ckVpUsmBRZ- z!t`L(t!6WPb)*aNWDUF8nbbYxAraA@B9#H=roMS44DM2XG@)BuCbE{Psyw6Y*en~M zmT{O~4=Cj}0R!y7hKIDo=jVb7=u)mj4qh!)&WStnD-zq2cQM1|ObO!RP5xLVr09+~ zH|h40Rc&nn5u3xp_{^})WK~|$rI^mQ2XQZlW_KZ)Ix`;zNZGPF>VFt@(nln?-&JJ?c#9DC z!;XoEVT+K?cY*Cvb+p5&*P8g7{p=-U7d&0Zog+ZC+JEj~1I$228{T`tu+US3BT1b(5 zTD36GYPE11G~|F%GD5?5V+nc@n^3G*{pG82y_hxy)Ij{3IWCnM-%#p@MnLnmD)8YF z22P4+i{D<&pIT3pci*d*|C>ca82HyZC-8t$x);|xl(%5Pyznv61Y5g5Ej;Abe%{|= z=N`dFDzUKrU;4yQFqq|i)lejmZ^6M$jNi;L|JLZV{%_a~ZWxp3Zlcl|K=R<>;hf8r z|9W)@AO1Apcz|HjLfUZ(>+FCh1F$`x+2HDW?81%qfcJFw&;npBjCrA{bP+C)R)O)_ zCdgWa2mt)N2;xR^ck2o9{Sah;zygA<(NDzJ zme=NLaCWb|7S2P&5m@ZDO(EMofN&ZR)PPbtr=4;;xKvVGvzE zi|Jwx^tEQmy8PLs-&T*M$n#C`IFSDD9wQDXyzm`C2DFPA$9tkIdGHcfcm7QG=?EnM zNzwx!62H@~7@7d0Vm59c10Z!0|2nN0KB0fIlMF&$@WxECRlZZm zu@jKmY1JgomEG|Tbl|Q25qpxdprH>T%jS0~cohItCCE^Uu4DPuf0k~fXy==Hf|t~C ziqUsq|GPHIAeaVhZ2$LUh|-|a9PT27ykT-!31g`Lv&Xp%%iShu`T-bHwF;k8`F)zc zds^oXLNfw-qHZr~pM1;XPbg5l2mmmDr8*x_y{4lI4ttMzp}Sx~ft5>4v43>wM|@f} z%xpUV51H~9%v%6T_$S(qJLk#BYT>rp+e`Vp{0af=;)D-vFxu&_AM`$XcQv&9u%-c` zx@MsiG#MZWU8)=jp2F22a+N+l&u_9&a+gu`BO}5eXO#MiWA4lWDV>Ae;01uaMsjuEOF{67ff6 zi7=vj9}<>N1C(L};WK1DUWIOe0>3xyug*-m?o6-J@;tP;6P9f?aOA&xvG$y<`0jSJMvR`FPK>Ji;dmI)9y0%*4~p%D6=h~KB$88JdbNvc!RprOwau&!Gvs?kEI+V z4_GE|UrPB#dmIq({n18vfeP`(^t*^A3AT@0rFQWA3{~aT;f1wsgWTO53?+Y@d_G%5 z)<9U*c6J`uC`^)XN#tr4(tL_*AD6r)>h)R1ShGle%Hr4-H>w@Z&fOYd*+7Yq8paW# zRkc`eXzu&)kppW83GpIa*!jAma^yE{$u}80f9T{q5GWjJjr>RPGdQ$CVigE)mKAqR z4t8K-7S&ah!3Yn|1HrTw#)#=sSyEaUlcZ}xoZS=D@9GRDEIMlYS&>ASN>QRuARm)sRzj1<9I(k(lPn@lQ^oV{(B6j{jM(S8?M3+G zg)aguw!eRb<3hX;Le7Whnug0)BkYra!o1feel4gyn(Xa%)rVqHz_3UwcpCzN z*Pj1ux=1>4TU*_KV(#FyvlW>adE%Ba!NuyHK^E(gd>gz#f!S_DIuE!gjz2XW)j9yE zyC%xDuQ+=5AB8J-m-63&^RCE{UjeEp}wlTo_ z&{GXw1V_Bx%YkwS54NT3Dz}2qB+N4Xy#9bADZ<>)OnYfSH0HUIf5izY0C4b< ze3O$uz?9qpB)d2Qm1|m1_njQ?naAoW+;^@uUG6zLqiJ6JZmj0ohsKl-rk3;5ibIz! zmU=C!61!~~c4$-dXhde)ya6-r(bSxtd&)Z>3L@cRVPzzs_F`#a0Pg)vyN1K5z{ymE zGsFpy)xYbPKW!R*`-4nbNuEWP_{z@eM$tEc^VzR|`9F;69%dFkG7&Fwn3ji5ICQ6~ z#*Lk?9PT1gl(hqde6gRu54s!8InMLz7Y`YAXCcD+SzCfyUDX|=`(o*=RZpgt)3ch+ zScORYKTmvZ?Mz%h z9MU)$gTkB~jGg*{7`(}N`|ad37+mM6!UJnqzhfb|`IqCm^_CmKHN34n*rFpukKP26 zq%=lnS(Mn+Kh#hrd*+uL<{dITcnnmz71#*QUIBv6P50kKxZh(CCo|K`+&O=5mVDCb zATb46C91eWye5}Erg|d~x%F2jq6hPE7OwL+d)Wd=hJz0q_0l*cO~YHGKZk!4$2tj8 z!QRfi`k>&o@kf1=bv6I_-zSFBp|6+%(D=!tH*>bt|9-OHI%EhwXWVfbbz1I! zDtR|MkDg&P>kk_Ja#nD7mC2%tTEu5T&47FVlsYo_sO_+{#vK{A3PD zE&%^mO=h^@^p#wH9LWj)ls8RsK^D%O!A#8yJsq!s4kmb>j;_DEtOB-LfTwr4 zJQSXlrMr;KH9pDz?jIETRW1NPRz@y&_5M)ouX1GrNaqi*g~&>{;htZ}sPEp3@@?TZ zgk4Nm1p??qtP!XFp6&FQp<)U=sbQvkJA|X+kS$)UVOUE?gWg&@xG5&=ZaTU{_~d8Y>Pvl{_u|l}j$Kw=u=DCvvh`KkhS&eH?Dz zZ(K`*5v_P+9)0W}^b6ctm5t^fXrW2n#8IvX1})-Yi`51JXwUZu zZFS19uggwc60$pB^a7Q1g z@@3YSFE3wn1FHXmnhIomI-F?$r_XLW0I*p@fp39*cik8MbB6^q$D6a0EXsVkW8v?+ zIXuhXPX+e3Se}^++hP(HSXxvP3(s)`QsFMlGrwsOkMltF+Dde@-TfHUrNHGjm#9&- zGi0GrrKD%(95p?->6w^|EJKgHf){#k27t>)x|r|tr^oPi$yZ;UEM|*|OlKQ+Ah`DJ zaEZ?Ff#L7eWyHW(wheSVW>GSqP9QVW<`d)xcdR0Jd)khRUWmW{aXOgOdi(S!XyVL{ z0f~EKUq;p6#PrvO(B`Oe&@Zb2zGqDUDvJb(A<@| z-i$Ypz%SZk=}0M*baRk6R(#~PVJzJ%-zI5+jzRA#N@JR|oTnEN+ut;Dp|dDUTCI@A4=T=xAH-;n4)O zA3cz>r&_R|n{KOjJw@p}sX0_#&lIBB_sfWY1PIaWwhFx7_1DElRm^*eqziv1@YBoQ zVz9(_Y(dKEk(}mVaRxF>JQs-u>pZuy{#rl@chzMh(@*F;DSOT=hK{hy*6_HmJ#hUv znTq^a)g~mchYK!umFxjCmNiDcxCFrBLJf~MK6vW@t+P>P;2vTCaPm+{cjm7$V9v>WPB7{S2z4kjBqWO ztFLm>w#jyW|0POOZo8G=P+;N@H4dBJ)kY#w501yw=z5YOdl)9$-!bd)S+T4c{h@T$ zkFZ%@E!aL8&RXDn9Uz5to*sFx@kQf=QVO9Q^)_0%>~9H}i&MQ?iHtP($bH&_PJY^! znvE=y`1!bSGF-4dAq?8F1nrn|%tpaBU#586W>VKI3KoxxNnhN5UM4yu5pT`C*vnzg z7H++?NFJU+&Vf|F@5vZ0PlmGBhINe9(7f_=F~PI;P_-b)?%PEQ9Ea(3A2G>A$$R5k zG}Zic*=oh3Uh-qbVxPW(bLl~#IeZYL)}gQ9(*loN778xYx6P;7i~c?r*^zl0#&2w3 zOE@%CR3Rd&O^!K++7S6X5rz)Znd`7Wu3QuE)6lRD9;T@oWICR@X93INJAL3dHn?8L zN}zi7s4X)s!{WCffI$v=O#U0(3`|WP4dy#!{^%q+5>|PEMrH8z#vd&X^Kf^kz3c_5 z;IAmI>dwzDtt0V2tbskfKR{k!3aAizM{aC-@a|$0(!|uJO5t zTPG{+rLyGpqsL7>2&Y!PClyZ*+&{bH3_)QyJ@1LrhZD;$7v0V%Gk37JPNG2iA^(t+ z!|h15T(R#%I;#?8;0_j;-_@g7hbMR@-?=YE>V{5wn!e_e^1h&TG~UEF&fF7+*cT0SOIPQtZe~6-h->@ne?Ky( z1!CY8PiKnP&UP}0U{?XH9y+f-WvaywhxvwJij7xQGZk^@^ibrhN_@mTZkTZP{3UOsH~O6 zh;4zwWNiT*#d@=wtsbBF_k{ODq?ozr#S>ixY+HZE2`sZy%H}=LiktT7kSI%I`)!g+ z46}ewwcDL4tp&6R_A75JUgXu2zYp@flb7|sBv z&{Jj@uXPU!>Ndai@UlximIL#2Yj#khnYMOIVRLbqh$a6_@4x5*b>{9Kv_o;?zrAP` zCgNEJi`D*CtNPUd(-0@dGG~nl!DbvgbOX&v9}VQYSBDl^?#*@h!XAYYVX+tQKG_hg zW9R9npPOoVkCS9W>G>8UX+I$Qp8jtq)kq^)es)yh zgR4`6Ydt>l-yVON5$_KL=mHxkuPjiKzn#r*09pJcO=^CMb{J4!ne!$vr{2+Bkw{ks zz|0yB4%~^-iaqoKNhsg{9$uIZxJQ^iK9F9t-?X`Ro1pmpK5_dcE*num5*`sOO3g>+ zJVvQA^GMQ;T+AN(#)bI&vj1Kt4=Ym^3e*fq&b4X*p+1zE$)gV%&Tr7TJh}^MND~99 z5Z=kKRzXBznb5XME7F>~H17mQ9@MXl?3}Cwm;>Cs5beCzI$Gj56lk95 zBJDwcWhtz?^jsR|V@qa;E{E-Y2fZFOH&)-94cazX{M z<8Eg&xMXegwei?Rw~-D5S`Z^T}6-U_4@ zcMr0f67-dnsDHgvS3r6H>b9kTD6l+crQ%57WbbTU@S-f>9*Se+HP1T=PN~J#yJCy` zJ^%|%I5O3TG{0G3C8D|LFuXibT(ZuM=Y)7BioEPW8zH-;NXkM<5^ zYN^7Z2y+#}ptOe55520RF-mqRz7p%JKp;`wk6qW-KdrE+wNKJM+vnY)eez86wGH$Z z1fg)o#87Zap~~Mty{DfI(3PD zJ!opTB57rW?pfDttd=Z4fOe_6dzg<+ZjAQ;@E8R-Pin32m8BA_TJh@f^*cR7~dt#Uh{(0T)u) z@G&d7kzFE44SR2z&>MOt@+#`#rR!sL%AE6^kbpu*B7-&#eT~I^lYuS$(}Q#sH-f!^ zZ@rEL>p%dxocK85m)W&x-kU&veq*U@oPv1vr|=8ICwl~e8Ch1_|DgwauX&87Pq)6D z|8ySO`?I-q)(&(xULC>Vak151aUI_Vpr^B1bcwXk2G^QJv=~ryqYCtIn1j8g=^R0> zHH+8Lh>hl^MiUltcfy*kEvRH9^jx|L)u;4xYD0{diuaU?4Zzva1^2>9768(!)wiT} z-lTpw%rfyneYdlmPe_q%koYv?U^!P6+sYXHjQser=3?`g#B&^rQ6$l-=gif7Pn zQz*iX)soBthP-(SxDk)OxfCr>eovEPPaq<+n$~Nn2lC=!?~}`n`1Sj1qjMe|+ss;J zpwE7Z#JA<_D|O^OBPi4 zZfs7Io4zW6ciweuG3sUNK6{249Q2}|VmsaqXQE5QF+Z_Uz2CjzO?d2TJJMXDjQpa< zVkW#tz>TuyrhLzveqw8&q5xEcz8)U~W-L(hw?zP#DS zhxREbyGyW3|2F+iDY|en>+7iC7yA1o4`-7QrJn<>g@q(d>Bfb-tJ$8-fb!OoS68+vxaYaLk=vAR6J~|im0DEi#YY< zw6bRjKLMh7Go5*A)ogXJXt_gSohuuv+!95G(C6SSUab#7g!}!9?(8!N0hg^DEZphr z%tQp(lgM^Z*NU8?Tt4^>%k8 zK-dj5vDX7)KrwNd3wm$_N8N&g1E@Qn0^0ecVr+`RnrT1Gji?Mw~s#Q(!7`RP_oSFRf zU%qkChomBDDlV`F14#_Ptlx()AG~AlWm85cF*~|1)l@Ic=lrTACiOF?B5L_ z5T3jN*hwq!Mln0`3Z8F0z6ki@i6 zj@T)1H13~m>@A}?#buFZ6DXDMg2iqs8->oS~S)$TYa6@$; zvLAUn)XSGZnsGYI8cvik_zxlYtuuPT4X!Cy@SXUR0owY+_>FWpSORSTx>y(NNP_Jp zxiR?1cWpe)F#o>6CAh(B<{a?dk=R-+44+@Dy&H(@x?6sJ|D2boo_l#G?1{zn;Vocb zJA>=N(p(U?{<~eXhc#BYNp|bJsDBS5LKK0r%6^oqftAOD%Fe8%IoWc~HurV3LjO6l z2+;8QDL_oST94Yv?CH%>$zx^xD1)va$s1c%(CxF;Lx! z5_}*-0sqfn%V25F?hCxLvmFlikn}#md;<{Y_M8qeZ?*%bi2r^aNs~1+GsC z7r@#ml5Q>|QDrFBpLjO%hy}YSkpI2K@D$JwkjN|v7XV;US0bJ??I{eoTg9-e)@AJd z_a49`qO#9F8q*Ej$n7u(WI64Ax4Of-P=Pq5!bc!!?sU-Fa=#VYFXWV3{zn&I#_5CB z#vcI?tF_^zE^9VvdMY}h3UaWucX=3UWPtgPT*|0G!Fn?9L594tC6EV4fZYLYevJbN znV{tEzX#~P7MpMDw|G-I?DkWzJcInnPL-`W&l}vx%3l9S9NB0OaJgv|E(*ehUJmnv z6a|kUf4%MRm_z6-;tXe*$vj8wS0#8jz4Nmx9-#_A>a<387Ai1k{v38XZ&)1h7-^#Z zBL{Vm#o=-rIiZshXZO%p*uiK%~Grdh*p1yE3pnkTmIe8C;&f zZO5i2U-)}z6EJ9!8odPmFt$Sy!s%(BzCyymd{m@OKi$X;yQU9J z{69Ul*PdDNZB9kGb+Cxwwl}ao`OC)P+QI%P4pgU*cVD#6e!WZOsaT&T;@SW>U_l$^ z)y+tS;6Ts|bq}dfuijar5DqY_urK6uWmCL%+lKGl=Yjbi5iT^fyw->yx~4-`de>Uh zT%4o==J`oX+^fdHAcq=@Ob8TZKI1pJnix;kJDA(TU(W=?*RMB!5v|Ibt=HPzgMntJBdE*6c z=!Cs7=lVnqfW7x$qRg?<;9QelGr&ys3%sn3G<}Ae5o%MB_wFIJD8yBHego9`Feh7K-qXH+y-niqaUc(K%oq#I+B* z!P`Jv_jb8py3V@rnuFbHVzrvC{?<&y=6L3!<*tM4Jhkz}@wy0Kak}by(W;49s5f5U zR0M4BDcz#$_{=gE+>K{z1p6~UCD*PqlfJR?g=-T9L4w;g2=IT|_}{vwqUTM^4T;qV zZ<>i5fBoobxFJ3CdlOf#LdyK}t;s(|{y+LU>X@echbkhA&rikoQy9?Gnd(vka`Uik zQPSh&MPo1T(_Ie#-+Zg>_hHr_dCc&LJeX|h?wp~QzumfW6Xo(Nnq%Cs{loP>&n;OT z=yz^NJs?GZwM>GxIhF5ul^o27#o+Boet-3zWK_ zjcU1r%NZAIRgD8v%3iJBMgoCAA!!8g!p^TeTfRRgkZu|PcT7*2+<|`m_t>zF0Qv=B zcU#Z@vo8#LTf*urg!}e1KW6fNed3()ow#_)@Mv~)|C3>D^!BIdMd4TjT!XJMJ~=Q? zNOCe6-uoKCGD1H{JXFooZbrkgTbl@JLdw2w5)Tio%q2733>=Fc}_(q*y&qjs1>Z9Hh!5(6jjPSVVb` zg>S9AxaEY#weHy|MZPH zU?am6Q}}RHZMq$|y_q48%pmB~W9mLbZq%B#TnmeF=XEPbAcNd+T0SB7sLuGK=l${0 zl90*~ex`Uk_uji?4ai%M#f9Xa_Pg+|VR|H@VA+pykV->bh#l1Kpe6VJH(xfVKz`}l zGZiitF*rlN8)lMmN+%zS&qHL}3(xoMLu%dBMKO zdL6MjFgbF9>J*iwU_SlqdVP@8J$OV-2Vo5t$`-G(7wPN_LQgcPbn65LG&y_Ka>fUR zRmVt)P^0*rto8#H?kz!Zvzc?)J*yBRhi%fo1oWrX@|d)ZoNwf1-U?NrI&}}b#hcj>N~9CFT+?SrBxwxl z&nsuMIHya}zBuB8k_Z89Z%SE>_x(6^&!L0;qt}dX-D&<0;jR9Ubs1?@ zA7kUeuUdOYvF@a$)P%;un>}*Uv_UQ{a@BoQ9i{Wexy7thRNkg~Ao~4M*|Ld}Uzpn` zc4`nWJr1$EE=d)cB5iij<1Ojevzw~%1?rBeMN1~CDz7uEL{(MD3Y9;YsFeasWPL9B zw&dK4-oFoPDD&EIx- zGFh%_j^X|?_hh!Sy|vcMWr?!o1e1sfcjY_Lm&q9dHRW>7pd{#@e))E1_D9X9 z=E@S&p~J+(|J*>I0q>_^#UXz46tDRV#7pr1@z2)$?;nve@M6=dN1Q)^j9JR68!luG(Gtp%R|o55OI4RDC@3tmIk4YJL1BSdL1E#&Zx_Lqch90X!#@^;I9Z!3Jbt}S05`tz zF|#*QP$*7N5}#PCps+~c*MmnacR3MvABomGMm~t!{HxcN!#>-N`f51`XuAY$cMI0R zh3(k4Z=ackwfO-@TU%QTyJP!*#T`3#%+=M^^2jMG=KyQ>kOO$4*EzG}$B+B@`2_?7 zoIih_L?Y?CTr_ZtHNssrK7QTgWP**?MO&ZW51zSZ=bw0xK(P;@9zCCB9s0mA;=!-c zPfi1wei!u#7Y{_nd6Fpm4*m8x_)=Ej)q=1qcZoOh$;pqLVyh!EUR+3Zx^&Cy_uJm_ z_gpSqxN!aY_4xSs)YMcem3lR+PD3JQvfipt8$vWn`S zFq^Q_#y)=hI503E80HO)@C5?F@bK{9@c0-w`1R}8si~>i*;%Pn zs__3`|EInd9b5K2{Nuae1Fj(o3d?I{-wWyp4^F|xA44r&LJt#8hlZax=dBQY!Z#>X zC&)YWCtaN#I(pu*ySx;$ovntV*eOJ;wYOdq*DjGl8`NqAIIx#8Xq#d&eDiW!}S@8WU&QpdxZ> znDUK;cZB`*?RgLLgs$!Dy*t!5Oob~#_|P7TK=?DypL2|3w@BI_nhY$iP;4*&)$=X( zReT3EK7BiRsdad^3j-d)b|^!OeZT0LYWpx76{SB;v)^|56RnMVe4yz9MSRwJA!cCj zm-9CgZsdLyaJv18zI81o{9Blj5yy!UXCL)xq537#c2$x+%{j|)V#6TAM1@(>5?&#) z_NfyLR8t)LYi_J~C@76y>m&HFksux_T-3y)zn?TYsljR}p!XKt=o*(K|g_Q--H&W5ssu<09YgfR@{~AfA=RP9#@xObz!s zylT-5iJqC+;`rGudG1k{P37M3frIOzW&=hRko4-UgK&}!%)TypEF#S`?K4_YloIj5 zlo?7cYfZ$)Ztc(;wS0^D^#5bFA1R9mTWa*B!a^1c` zAt}9fN``@ zH@531?6|j4m+0h&gRISS>R)5UYPXyHiBPcAb#ElaOLE`0LWP{soH_b}^KsGcya(d7 zj6BNu&vnL;0qQp-f>8~+O=LZ5HEl3-N?+=Y!^PxCIhmwv@-2M59c!78Ww@73{v-MF zoN}ciDeQZZ!Pj%goC%x_*s4?PZQm!fgbP0g(M)@Iv;&vK{(G|E%!{mzYpJL6b0u^4 zjM^(tw2-G=XPau7qn=+N>J&|>Da#2w%(?cRap7SrAlH6OQ~G8J_7miCc)zSg07{nu z0_6zv_qP(cr#YeqS~6oNclIGYRg3jDue~uy$|f*MJ)l5+235SbLv5mv>M%;#hR+pb zWj~l8oFX*SPE8RQQ{Ooj{H%sQ)t*9oJLwP+rC=$!{-vf+jfBm!Fa;yPNZu^+G%+l6T{8Lm&u+G!1 zSFjH2^(wq9*hK<# zKVw58V~?SV2^+(ekLq&)V)GPb1uSNPt2YDJV-f37APcqTgIao~NZ#^W_(H*gj*OU) z>Rd6=UKyGFa=tTKRInz?kFy9#WB`SsiAW8O_Jn@!w8U-(6qct?kJSM2$6kH8i-kJ2MP5Ch@!G zjV{0Ct@e#Ad2 zqc0+xS0S$2;?DY+3v@=D^X=c(jMl8HgJqSPvv?YPSI5j{O8>84#6~v^CpmUsVqs(1&4{?^~WdTXtX;ExC~0k~DF$ z%Mg1jo>cM*J`r*=9M5eepX@xSRhYjMFB|8sv$p%<3bZ?3g;`tGbZ!OEpN&nqi$XV^ zJ=Vdkgwn7#pP-hIM5@E2_0zfUR{6_Ok#<20^vw0#i;6h>a$=cjBU;x}+zgLjC3eD- z?@*R)Uy5#F(}@q5tFQRKWgx8x3cd`*8(sVkoyTLo3PB$Et2T>-q6H7>rOWZw-AH?f zV&n*LAH^CK^#2pWv>oI9#}L~}s4D>+M(1LfjDLn^r-(bz?Ag3_G<)zS z?j5u{o|KG^#(;t7JTmJI{7}b@+()QmjMzEV0zghe5ef38({xYxXvtB+CeMi>E&XN` z$$-%_gL$qfBMr;L$6B%t(CjWn;w5M%m~hbp9Q(47a95t{L=LEz-aAZjlcV$_j8ZQ} z&OFI3MryGml`M|W%O@rsKqB@PQPX=*5h~D)WGBm@A4D@6k3r_E3vII>gF<@RFC*Pb z$u!R7Q^yqzD5Crcd<_@tLORz&z9lg4O%O$M3#)#4-{tH}wA4}j{%u!GNKPPRJ?D2# zlnYz^h#ESI$oy2f6LClBLhDD2g4W5a9?MbWOM^>|8riho@}aUYsO4g*%^1qPf$Z=4)YCB6pJoe zXDa58IvGl{|MUqqr&2y(p7jFH(A9jE0L?{x;TgDZDencU=Z$>lJ2fbshC|*c%Vo0L z%hv_(Mliqy?NFMDNX0YJoi7$IMG+LlhnGW+-)$@h6u*a|6m()9jkI}=I|MLLSdl@0 z6qM!3_);`vhPVO^$>g;Mp;*&k5z&ypKugeWfX4z(?Be;z)AKTPQGDMdw4#|Tm`Bl3 ziqQFaUgxRJ^D3U{jZ)-0e%HLwgLxJ;-sNY^^Qx=lVI*q3$j{Gff1XI)h;$qSR-$q3 zQfS5dI1kq#tLYdCtlrqk-ohsDVF>Q$SSTSwSG3C@BiJ;)U*66)VOuM>6-Q= z@0Zj54M^4A5jv-Up#3c9?r}94#iZz<&;6y096TGKy3F0-P!mMdURsO3ED*)ZYf2zC( z8`Fz!u`2-msq$Kqohk@~3dP&dgbsXXl&-#RWgSBU*+ENJVuKLvtIiS6lFJ+s2Tj)L zzsY=N1Faj)WCx7=P2vrc2ygx-@hXu1e0HAN-zDCR>G`L`=jYMSj?=Fqsn%e)Pf?N+ zfPrZK)a~2~)c6)`MvZHVB-;#?v&O|>!oLp+Wd^fiv(AvXHUzoYc=n9{t<_)zE{HU&9|$OG2$&02WLDaK<7(QxXZSGr9?h;Tdm4&NC)tY5dV zaA+bdq=zQzZlHCdiR=MCVt&B;n16$zGg$C<7+Nze(NJp8=D)#kCXvwg?=ZZ$2)c|q zvMGcPd3RALRE8RrC?lP`Fh7n5HAm_!4)kKjR-tVXkpH5zek@vrmt<=ZE*?3F+(b;quhPcj=)fl;? zqL)xqGp{AXW1ga2Yc}H_3bs<^msM2?mD1}rrKNMjm4Gi0_~PZ_`&5U@pO(ovy5Kbj zc?qr;O6FDYcD;J>bkH?)<{^dy>bynK%<$$vx&rn8ytkH6zp!_SWQ1rKxwFH4{wS`k z$9DCo6%U3)`RHE05r|w1PAmt7)34S|ys)!qC9g|BS&uQjSiM6mI$X-I{FkXnd?SHXK zxEh_Q)XQrRBo0OaPS1`?D#w8Eo)Javj3ie%DR30PN;i=BTGjS{?^iGh=xJ+<#pl zFLO=%(-Op_CdZ!WuU~=o=uBYIWhd!n@nlrZ+l}M#qrIZBN2SuO@Tvcqb)FMd#xb=w zAT&Bwj`wXWok@820sEy7&gA78raHxGzsJ2jHgQ4bypi?EpSY+_xgrjl9?B-;y10T~ zWA!Nv+mWU2Z$0yo?)_Pu3~#2nWLPCEPFzybQkm6Hs+>xr;+rBx-FrZ8LlmjA?W{Cw z6i059j##VbSNGlhrh9#+(gvP$5b<_S2bQ@B%SsC0xHDc<>+;%npXv`08o_-rU*;+k zm{=0Up{GuEyD!bawFGBNBg%_7)InBz^x$0RYhWi)lMU@F+RWlkMD8(Y7!!)ExltGa zdC+NN)oz)z!KHQ~$NI!an6()3sJO8JPS>}nx((|yShKPEGqYnKXO|)(7sL^9v74j3 z0ErKCjcj$vo1^@JX@9&Dtj{=$%IJFdIz7_yZ&3N(;g<4oW z#zPB0)d+W;*V53NPE#HwY^18+`T3>nIXu1++o=lf&W?+Y*Emu~-Bi{(`Mg+6;bipA z*(d9Fu)W;@KPH(5sYV4XJ0tyG|4&Ro;Q8yn+?QLMGA zJm>;%*x=4n-^_NE#M?dA`W~X6A)0Q)U)v6bPaN9I9;<_N2iR6j*Z#1Vd5W;T8Kj)TJ3h#8@7ls#MKPAi4)vH2cy3(z86DGnqr3{Ri=0W2*y1Kt|Amj`lU z5@|2(K_zBKji)AXiM0LkO?;X$e)+eMn@a;Vc+XEf{}Y?Yjs6xJ@k(k?vW_C`qRn%x zTK5mIbVnjKOqT0zh4?#rWq7`&d@YZ~aH=Dz@T2n=UcsTG%vUcG5^2`<(9*-C-S8}l zV7`GV9Q#NzOjF@-@I!WzE9SCESgwcfv9cgXd0KjiOCtO*ka^&kIK<&BbQN)krcl_`G2x$*m;(U4a=qzeMrRNQWgaKTnv{yb!LzwjR@l4BiJ6 z%hpdR3|gGA0q%GzLqU7{ghdT~U=+miH6MQa7H8$mwBp!V)J=)?KDvj5L)bpehxJz5 z|A60|I8`GDoF^Om15zS`wUO#f$R?>{g-bf z(qfZH_fccOO>!FL_!kwAbtS#bV;nW%kH{XE%rGR>9&twS98px7E}PfmwbK*km0rjC zs$%Jd-KS+^yMH3T=&YPVy35$u#RH0Cz;7X&5uP9i(4S1XYW z-Kimp=;}uBg0$CT?L>fJYI^Kk(vL7G93-Q?56ZBym6@9^leX)#u}w)-54Y2-=R{FB zvgIG13=UEzF84>l0yIWM#sq!9u(KRjSTNU|2FCydFdF0<{%>%Z@nV~mSUAmQFyB*# zs2}U8M47`Oyo7f}9WHbT%y$%jivVUP3>g1I&T_z5*+Z%;u`6JYtDs)q%xO5r6i@5m z_Sr8khEwb&a;Wv+LclCJwe+7;Q6Diu#7fMGQy!pcja8{+jcXtFh$ooG|591P1t))8AKe%dvRd-cq= zzTMnaGCbH~KpTx#asWuCWb2vt-JTLn@ut-sXDpooRWM(lp&MFNo(-`&YGmfEI`~{c zyrIqY6L=*{h_))dH%+!KN_y~HkI?-FKBsSzU^#xZY&~q$fDZ_vTeh$-*Ff~Bl301! z?mVCIN-u7J*+W76dSp|-7ez9fe_+$z`^zdQHoFTuIT=xVc&ZB8Wnp= z-ug*NnT}q}0A7ZkgBG$t0q`BEgBjUEZ5ly1p{$WR5=a3`P+XKXaEHAUd_{-LIkL@y zXEUd^?X)dSA%O_?^x0$hKKDWpz>PMq8AVX?0XJhCGRR&4m!SoPBP+Wj3ClmXufDxz zKhQa%>47j#Jv9OW&`;zcS!ByFXeF}fer)G78EZYzBD*2Gaa4v6bLIy4iF|Op8TJ@z zp!OnrYR`PNihBWe(SWug>k|ea`uyEIpZ`QH^9cEGspTb4IXoRW4_j4a548AvV z7rbL!zbm7W)1QC$Vy+>|{?hdz2R<%2oAEh<_;s>Pw*^yRW1VdCQlyvoZFP_6v^F_# zt_6ZE_6e>8=@;)TL@Ks}$wRowwAF@=@&glq9T0-nj~E$_O&wKQbYq)LmYBuYEFM?_ z89c7=ED=<9^QE1viI}vIWHB(072MGP;*Jog@H%wmVU*-l5H_^Q4KS{ZJ~_LStQu}; zlUX9>@_f$3sPSN^tStBB#H?jYm4HiDGUneYwhU7Afi?%cWO+I)K3{{hX5~oz`pix&w0$|W zb|u8w4Crb})umBNCgTIJG)3Phca6yXCx-eoJa>^33(n0pMny;`T;qRCZUDoPefz_IR?!v@A+(+QkKme9)#+@0&`@QVQRtCbxPpQo~A zH%?ORSK8?%T6#1cccrX z?E=*jyR2)|9}Vy4WMKOF!bOtR5bds@nF3?PSC;|pnoCn}N-YLy{-WxGYqyiJkyy8p z5RA*hTs~fOBfVOCEe7kdZXnzk)Yt zlRGy6ES2oAv&}uHK4(^uY%)1}LUHrgjnvrTwo%Zx=At~b^O&eFM8M6@rOlNs{d{d*zA{>tx2*`bKQ5c+L(&JISfg;uSh6Dc4AeVyWU_HpFTV;20!fA*gp?APbWCrM02S*ogj5$B{*&Z5H zXU#Cb2jAIC?wKsa6K$9z-M|JfkKPYoDgGt7kMssV%p9ic(`K^Mh6|YW9vk>06RHuC10WYiUU6vVYEsM4<(0Z+idnUBud%_FfMh@G zCW|=2Hms{OY;%vQ7h`lp2?Kbe$a~i?x8lXy`rZcB6TZ*Xx+6R=vI3<41N5=3XDw4o oR`0%?IF|Om;FDTXB2{!)wp(GdRqu1zf2G)1I_!UJe*EHp0dWI)^Z)<= literal 5488 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 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); } -- 2.47.2