Skip to content

Instantly share code, notes, and snippets.

@maurolacy
Last active January 31, 2021 21:58
Show Gist options
  • Save maurolacy/26bc3d1458f4422405ede4c9ba3f2b09 to your computer and use it in GitHub Desktop.
Save maurolacy/26bc3d1458f4422405ede4c9ba3f2b09 to your computer and use it in GitHub Desktop.
Rust compression crates benchmark results
bench time size compression_ratio ns time_ratio quality
compression/zip.pack 11.715 ms 55602 .017 11715000.000 -.8828500000 1.4329250000
compression/zstd/level-2.pack 7.6080 ms 493719 .153 7608000.0000 -.9239200000 1.3854600000
compression/zstd/level-1.pack 7.3875 ms 502723 .156 7387500.0000 -.9261250000 1.3850625000
compression/zstd/level-3.pack 9.5635 ms 483315 .150 9563500.0000 -.9043650000 1.3771825000
compression/zstd/level-4.pack 10.166 ms 481933 .150 10166000.000 -.8983400000 1.3741700000
compression/zstd/level-5.pack 16.335 ms 464012 .144 16335000.000 -.8366500000 1.3463250000
compression/zstd/level-6.pack 18.397 ms 457444 .142 18397000.000 -.8160300000 1.3370150000
compression/lzzzz/lz4.pack 4.2326 ms 926487 .288 4232600.0000 -.9576740000 1.3348370000
compression/lzzzz/lz4f.pack 4.3232 ms 927294 .289 4323200.0000 -.9567680000 1.3338840000
compression/snap.pack 3.8809 ms 993450 .309 3880900.0000 -.9611910000 1.3260955000
compression/lz4_flex.pack 6.5490 ms 999937 .311 6549000.0000 -.9345100000 1.3117550000
compression/zstd/level-7.pack 26.663 ms 419632 .130 26663000.000 -.7333700000 1.3016850000
compression/flate2/1.pack 18.316 ms 705536 .219 18316000.000 -.8168400000 1.2989200000
compression/lz-fear.pack 14.307 ms 926506 .288 14307000.000 -.8569300000 1.2844650000
compression/snappy_framed/nocrc.pack 12.467 ms 993995 .309 12467000.000 -.8753300000 1.2831650000
compression/snappy_framed/crc.pack 12.488 ms 993995 .309 12488000.000 -.8751200000 1.2830600000
compression/zstd/level-8.pack 31.779 ms 408464 .127 31779000.000 -.6822100000 1.2776050000
compression/lz4-compression.pack 13.560 ms 1041702 .324 13560000.000 -.8644000000 1.2702000000
compression/yazi/BestSpeed.pack 26.200 ms 691183 .215 26200000.000 -.7380000000 1.2615000000
compression/flate2/2.pack 28.400 ms 619885 .193 28400000.000 -.7160000000 1.2615000000
compression/deflate/Fast.pack 26.849 ms 692936 .216 26849000.000 -.7315100000 1.2577550000
compression/zstd/level-9.pack 44.064 ms 404551 .126 44064000.000 -.5593600000 1.2166800000
compression/flate2/3.pack 40.807 ms 549306 .171 40807000.000 -.5919300000 1.2104650000
compression/flate2/4.pack 44.151 ms 546679 .170 44151000.000 -.5584900000 1.1942450000
compression/flate2/5.pack 55.745 ms 531571 .165 55745000.000 -.4425500000 1.1387750000
compression/lzma-rs/2.pack 302.51 us 3207394 1.000 302510.00 -.9969749000 .9984874500
compression/lzma-rs/xz.pack 308.36 us 3207448 1.000 308360.00 -.9969164000 .9984582000
compression/flate2/6.pack 114.06 ms 511734 .159 114060000.00 .1406000000 .8502000000
compression/yazi/Default.pack 115.46 ms 511734 .159 115460000.00 .1546000000 .8432000000
compression/lzzzz/lz4_hc.pack 132.05 ms 711028 .221 132050000.00 .3205000000 .7292500000
compression/lzma-rs.pack 120.07 ms 1131078 .352 120070000.00 .2007000000 .7236500000
compression/deflate/Default.pack 163.42 ms 510688 .159 163420000.00 .6342000000 .6034000000
compression/flate2/7.pack 168.89 ms 505345 .157 168890000.00 .6889000000 .5770500000
compression/flate2/8.pack 259.14 ms 501494 .156 259140000.00 1.5914000000 .1263000000
compression/yazi/BestSize.pack 341.62 ms 500247 .155 341620000.00 2.4162000000 -.2856000000
compression/deflate/Best.pack 962.52 ms 498054 .155 962520000.00 8.6252000000 -3.3901000000
compression/brotli.pack 7.6997 s 301546 .094 7699700000.0000 75.9970000000 -37.0455000000
bench time size compression_ratio ns time_ratio quality
compression/lz4_flex.unpack 5.7952 ns 0 5.7952 -.9999420480 1.9999420480
compression/lzzzz/lz4_hc.unpack 7.3329 ns 0 7.3329 -.9999266710 1.9999266710
compression/lzzzz/lz4.unpack 7.3330 ns 0 7.3330 -.9999266700 1.9999266700
compression/zstd/level-9.unpack 53.566 us 0 53566.000 -.4643400000 1.4643400000
compression/zstd/level-8.unpack 55.715 us 0 55715.000 -.4428500000 1.4428500000
compression/zstd/level-7.unpack 57.952 us 0 57952.000 -.4204800000 1.4204800000
compression/zstd/level-6.unpack 68.001 us 0 68001.000 -.3199900000 1.3199900000
compression/zstd/level-1.unpack 71.883 us 0 71883.000 -.2811700000 1.2811700000
compression/zstd/level-5.unpack 71.943 us 0 71943.000 -.2805700000 1.2805700000
compression/zstd/level-4.unpack 72.922 us 0 72922.000 -.2707800000 1.2707800000
compression/zstd/level-3.unpack 73.461 us 0 73461.000 -.2653900000 1.2653900000
compression/zstd/level-2.unpack 75.141 us 0 75141.000 -.2485900000 1.2485900000
compression/lzma-rs/2.unpack 516.66 us 0 516660.00 4.1666000000 -3.1666000000
compression/lzma-rs/xz.unpack 851.41 us 0 851410.00 7.5141000000 -6.5141000000
compression/zip.unpack 1.2396 ms 0 1239600.0000 11.3960000000 -10.3960000000
compression/lzzzz/lz4f.unpack 1.2539 ms 0 1253900.0000 11.5390000000 -10.5390000000
compression/snap.unpack 2.2385 ms 0 2238500.0000 21.3850000000 -20.3850000000
compression/snappy_framed/nocrc.unpack 2.7088 ms 0 2708800.0000 26.0880000000 -25.0880000000
compression/yazi/BestSize.unpack 3.1834 ms 0 3183400.0000 30.8340000000 -29.8340000000
compression/yazi/Default.unpack 3.3154 ms 0 3315400.0000 32.1540000000 -31.1540000000
compression/yazi/BestSpeed.unpack 5.0789 ms 0 5078900.0000 49.7890000000 -48.7890000000
compression/flate2/8.unpack 5.4127 ms 0 5412700.0000 53.1270000000 -52.1270000000
compression/flate2/7.unpack 5.4782 ms 0 5478200.0000 53.7820000000 -52.7820000000
compression/flate2/6.unpack 5.5658 ms 0 5565800.0000 54.6580000000 -53.6580000000
compression/flate2/5.unpack 5.8935 ms 0 5893500.0000 57.9350000000 -56.9350000000
compression/flate2/4.unpack 6.0926 ms 0 6092600.0000 59.9260000000 -58.9260000000
compression/flate2/3.unpack 6.3015 ms 0 6301500.0000 62.0150000000 -61.0150000000
compression/lz4-compression.unpack 6.5908 ms 0 6590800.0000 64.9080000000 -63.9080000000
compression/lz-fear.unpack 6.8706 ms 0 6870600.0000 67.7060000000 -66.7060000000
compression/flate2/2.unpack 7.2406 ms 0 7240600.0000 71.4060000000 -70.4060000000
compression/brotli.unpack 7.4470 ms 0 7447000.0000 73.4700000000 -72.4700000000
compression/flate2/1.unpack 7.7536 ms 0 7753600.0000 76.5360000000 -75.5360000000
compression/snappy_framed/crc.unpack 9.6488 ms 0 9648800.0000 95.4880000000 -94.4880000000
compression/deflate/Best.unpack 18.410 ms 0 18410000.000 183.1000000000 -182.1000000000
compression/deflate/Default.unpack 18.938 ms 0 18938000.000 188.3800000000 -187.3800000000
compression/deflate/Fast.unpack 24.323 ms 0 24323000.000 242.2300000000 -241.2300000000
compression/lzma-rs.unpack 212.68 ms 0 212680000.00 2125.8000000000 -2124.8000000000
bench pack_time unpack_time compression_ratio total_quality
compression/lzzzz/lz4 4.2326 ms 7.3330 ns .288 1.66738
compression/lz4_flex 6.5490 ms 5.7952 ns .311 1.65585
compression/lzzzz/lz4_hc 132.05 ms 7.3329 ns .221 1.36459
compression/zstd/level-7 26.663 ms 57.952 us .130 1.36108
compression/zstd/level-8 31.779 ms 55.715 us .127 1.36023
compression/zstd/level-9 44.064 ms 53.566 us .126 1.34051
compression/zstd/level-1 7.3875 ms 71.883 us .156 1.33312
compression/zstd/level-6 18.397 ms 68.001 us .142 1.3285
compression/zstd/level-4 10.166 ms 72.922 us .150 1.32247
compression/zstd/level-3 9.5635 ms 73.461 us .150 1.32129
compression/zstd/level-2 7.6080 ms 75.141 us .153 1.31703
compression/zstd/level-5 16.335 ms 71.943 us .144 1.31345
compression/lzma-rs/2 302.51 us 516.66 us 1.000 -1.08406
compression/lzma-rs/xz 308.36 us 851.41 us 1.000 -2.75782
compression/zip 11.715 ms 1.2396 ms .017 -4.48154
compression/lzzzz/lz4f 4.3232 ms 1.2539 ms .289 -4.60256
compression/snap 3.8809 ms 2.2385 ms .309 -9.52945
compression/snappy_framed/nocrc 12.467 ms 2.7088 ms .309 -11.9024
compression/yazi/BestSize 341.62 ms 3.1834 ms .155 -15.0598
compression/yazi/Default 115.46 ms 3.3154 ms .159 -15.1554
compression/yazi/BestSpeed 26.200 ms 5.0789 ms .215 -23.7638
compression/flate2/8 259.14 ms 5.4127 ms .156 -26.0004
compression/flate2/7 168.89 ms 5.4782 ms .157 -26.1025
compression/flate2/6 114.06 ms 5.5658 ms .159 -26.4039
compression/flate2/5 55.745 ms 5.8935 ms .165 -27.8981
compression/flate2/4 44.151 ms 6.0926 ms .170 -28.8659
compression/flate2/3 40.807 ms 6.3015 ms .171 -29.9023
compression/lz4-compression 13.560 ms 6.5908 ms .324 -31.3189
compression/lz-fear 14.307 ms 6.8706 ms .288 -32.7108
compression/flate2/2 28.400 ms 7.2406 ms .193 -34.5723
compression/flate2/1 18.316 ms 7.7536 ms .219 -37.1185
compression/snappy_framed/crc 12.488 ms 9.6488 ms .309 -46.6025
compression/brotli 7.6997 s 7.4470 ms .094 -54.7578
compression/deflate/Best 962.52 ms 18.410 ms .155 -92.745
compression/deflate/Default 163.42 ms 18.938 ms .159 -93.3883
compression/deflate/Fast 26.849 ms 24.323 ms .216 -119.986
compression/lzma-rs 120.07 ms 212.68 ms .352 -1062.04
@maurolacy
Copy link
Author

maurolacy commented Jan 31, 2021

Total quality (bigger is better) is a weighted sum of compression ratio and (adjusted) compression and decompression times / ratios.

See https://github.com/maurolacy/compressbench/blob/main/bin/benches_sort.sh for details.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment