Skip to content

Comparison of Compression Formats

Stefan Bodewig edited this page Apr 6, 2017 · 20 revisions

Szenario

Running

java -jar target/benchmarks.jar compressSmall -pformat=bzip2,gz,xz,lzma,deflate,lz4-framed,snappy-framed -pconfig=speed,default,compression -i10 -wi 10
java -jar target/benchmarks.jar compressBig -pformat=bzip2,gz,xz,lzma,deflate,lz4-framed,snappy-framed -pconfig=speed,default,compression -i10 -wi 10

with Benchmark Code cfc866f, Apache Commons Compress 5ce60be, java

$ java -fullversion
java full version "1.8.0_121-b13"

on Stefan's notebook.

small is a 10k tar file that is also used for Apache Commons Compress' unit tests, big is the tarball of Apache Commons Compress (the tar archive, not the compressed one). Note the tarball will get downloaded during the first warmup iteration of each fork so the first iteration may be very slow.

Compression

Benchmark                                                      (config)       (format)   Mode  Cnt      Score     Error  Units
CompressionBenchmark.compressSmallFile                              N/A          bzip2  thrpt  100    545,413 ±  10,157  ops/s
CompressionBenchmark.compressSmallFile                              N/A             gz  thrpt  100  14146,415 ± 231,337  ops/s
CompressionBenchmark.compressSmallFile                              N/A             xz  thrpt  100     74,918 ±   2,112  ops/s
CompressionBenchmark.compressSmallFile                              N/A           lzma  thrpt  100     78,163 ±   2,744  ops/s
CompressionBenchmark.compressSmallFile                              N/A        deflate  thrpt  100  13307,649 ± 165,341  ops/s
CompressionBenchmark.compressSmallFile                              N/A     lz4-framed  thrpt  100   2397,212 ±  47,307  ops/s
CompressionBenchmark.compressSmallFile                              N/A  snappy-framed  thrpt  100   7611,721 ± 169,074  ops/s
lz4.BlockLZ4CompressionBenchmark.compressSmallFile                speed            N/A  thrpt  100   4719,174 ± 138,695  ops/s
lz4.BlockLZ4CompressionBenchmark.compressSmallFile              default            N/A  thrpt  100   3477,767 ±  86,809  ops/s
lz4.BlockLZ4CompressionBenchmark.compressSmallFile          compression            N/A  thrpt  100   2565,449 ±  86,157  ops/s
snappy.RawSnappyCompressionBenchmark.compressSmallFile            speed            N/A  thrpt  100  11977,254 ± 251,349  ops/s
snappy.RawSnappyCompressionBenchmark.compressSmallFile          default            N/A  thrpt  100   8411,742 ± 279,911  ops/s
snappy.RawSnappyCompressionBenchmark.compressSmallFile      compression            N/A  thrpt  100   3241,874 ±  94,902  ops/s
Benchmark                                                       (config)       (format)   Mode  Cnt   Score    Error  Units
CompressionBenchmark.compressBiggerFile                              N/A          bzip2  thrpt  100   0,367 ±  0,013  ops/s
CompressionBenchmark.compressBiggerFile                              N/A             gz  thrpt  100   1,800 ±  0,028  ops/s
CompressionBenchmark.compressBiggerFile                              N/A             xz  thrpt  100   0,182 ±  0,001  ops/s
CompressionBenchmark.compressBiggerFile                              N/A           lzma  thrpt  100   0,181 ±  0,002  ops/s
CompressionBenchmark.compressBiggerFile                              N/A        deflate  thrpt  100   1,753 ±  0,025  ops/s
CompressionBenchmark.compressBiggerFile                              N/A     lz4-framed  thrpt  100   0,026 ±  0,001  ops/s
CompressionBenchmark.compressBiggerFile                              N/A  snappy-framed  thrpt  100   1,563 ±  0,063  ops/s
lz4.BlockLZ4CompressionBenchmark.compressBiggerFile                speed            N/A  thrpt  100   0,025 ±  0,001  ops/s
lz4.BlockLZ4CompressionBenchmark.compressBiggerFile              default            N/A  thrpt  100   0,023 ±  0,001  ops/s
lz4.BlockLZ4CompressionBenchmark.compressBiggerFile          compression            N/A  thrpt  100   0,016 ±  0,001  ops/s
snappy.RawSnappyCompressionBenchmark.compressBiggerFile            speed            N/A  thrpt  100   2,242 ±  0,038  ops/s
snappy.RawSnappyCompressionBenchmark.compressBiggerFile          default            N/A  thrpt  100   1,309 ±  0,015  ops/s
snappy.RawSnappyCompressionBenchmark.compressBiggerFile      compression            N/A  thrpt  100   0,650 ±  0,008  ops/s

Decompression

Benchmark                                                      (config)       (format)   Mode  Cnt      Score     Error  Units
DecompressionBenchmark.decompressSmallFile                          N/A          bzip2  thrpt  100   4376,254 ±  85,221  ops/s
DecompressionBenchmark.decompressSmallFile                          N/A             gz  thrpt  100  31642,621 ± 489,765  ops/s
DecompressionBenchmark.decompressSmallFile                          N/A             xz  thrpt  100    916,060 ±  10,132  ops/s
DecompressionBenchmark.decompressSmallFile                          N/A           lzma  thrpt  100    955,728 ±   9,876  ops/s
DecompressionBenchmark.decompressSmallFile                          N/A        deflate  thrpt  100  27841,972 ± 322,445  ops/s
DecompressionBenchmark.decompressSmallFile                          N/A     lz4-framed  thrpt  100  20004,386 ± 405,610  ops/s
DecompressionBenchmark.decompressSmallFile                          N/A  snappy-framed  thrpt  100  21618,274 ± 429,813  ops/s
lz4.BlockLZ4DecompressionBenchmark.decompressSmallFile              N/A            N/A  thrpt  100  26211,657 ± 498,472  ops/s
snappy.RawSnappyDecompressionBenchmark.decompressSmallFile          N/A            N/A  thrpt  100  31719,799 ± 634,246  ops/s
Benchmark                                                       (config)       (format)   Mode  Cnt   Score    Error  Units
DecompressionBenchmark.decompressBiggerFile                          N/A          bzip2  thrpt  100   1,162 ±  0,016  ops/s
DecompressionBenchmark.decompressBiggerFile                          N/A             gz  thrpt  100  10,171 ±  0,103  ops/s
DecompressionBenchmark.decompressBiggerFile                          N/A             xz  thrpt  100   1,766 ±  0,023  ops/s
DecompressionBenchmark.decompressBiggerFile                          N/A           lzma  thrpt  100   1,007 ±  0,015  ops/s
DecompressionBenchmark.decompressBiggerFile                          N/A        deflate  thrpt  100   7,930 ±  0,097  ops/s
DecompressionBenchmark.decompressBiggerFile                          N/A     lz4-framed  thrpt  100   8,807 ±  0,139  ops/s
DecompressionBenchmark.decompressBiggerFile                          N/A  snappy-framed  thrpt  100   8,455 ±  0,115  ops/s
lz4.BlockLZ4DecompressionBenchmark.decompressBiggerFile              N/A            N/A  thrpt  100  13,248 ±  0,227  ops/s
snappy.RawSnappyDecompressionBenchmark.decompressBiggerFile          N/A            N/A  thrpt  100  11,510 ±  0,287  ops/s
Clone this wiki locally