inikep / lzbench

lzbench is an in-memory benchmark of open-source LZ77/LZSS/LZMA compressors
885 stars 179 forks source link

Update to zstd 1.3.4 and add support for new "fast" modes #49

Closed chipturner closed 6 years ago

chipturner commented 6 years ago

zstd 1.3.4 introduced new "negative" fast modes. Let's add them to lzbench but as a separate algorithm rather than just negative levels.

./lzbench -ezstd_fast/zstd,3/snappy/lz4 /tmp/silesia.tar
lzbench 1.7.3 (64-bit Linux)   Assembled by P.Skibinski
Compressor name         Compress. Decompress. Compr. size  Ratio Filename
memcpy                   7881 MB/s  7829 MB/s   211948032 100.00 /tmp/silesia.tar
zstd_fast 1.3.4 --5       562 MB/s  1579 MB/s   106185474  50.10 /tmp/silesia.tar
zstd_fast 1.3.4 --4       525 MB/s  1523 MB/s   102503589  48.36 /tmp/silesia.tar
zstd_fast 1.3.4 --3       484 MB/s  1454 MB/s    98464287  46.46 /tmp/silesia.tar
zstd_fast 1.3.4 --2       436 MB/s  1371 MB/s    93583294  44.15 /tmp/silesia.tar
zstd_fast 1.3.4 --1       369 MB/s  1312 MB/s    87202575  41.14 /tmp/silesia.tar
zstd 1.3.4 -3             203 MB/s   859 MB/s    66994707  31.61 /tmp/silesia.tar
snappy 1.1.4              467 MB/s  1640 MB/s   102168024  48.20 /tmp/silesia.tar
lz4 1.8.0                 620 MB/s  2985 MB/s   100880714  47.60 /tmp/silesia.tar
done... (cIters=1 dIters=1 cTime=1.0 dTime=2.0 chunkSize=1706MB cSpeed=0MB)
chipturner commented 6 years ago

Updated with fix to use ZSTD_CCtx_setParameter to properly set the literal compression in addition to other level-related settings.

inikep commented 6 years ago

Thanks for PR