Compression Benchmark
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CSC @ c5dbe09 . Oct 13, 2016
FPC @ 85a9b85 2018.03.23 Mar 23, 2018
FastARI @ e1e87aa . Jan 9, 2016
FastLZ @ f121734 . Jan 9, 2016
LZSSE @ 8e7a1ba 2017.05.01 May 1, 2017
TurboBase64 @ 4bb8390 2018.04.07 Apr 7, 2018
TurboRLE @ 330be1f 2018.01.06 Jan 6, 2018
ans_nania . Nov 25, 2016
aom_ . Jun 3, 2018
balz . Jan 9, 2016
base64 @ a27c565 2017.09.15 Sep 15, 2017
bcm @ 24b6017 2018.02.05 Feb 5, 2018
bcm_ . May 28, 2016
brieflz @ 104d8a2 2018.09.19 Sep 19, 2018
brotli @ 6eba239 2018.09.19 Sep 19, 2018
brotli_/c/enc 2017.05.04 May 4, 2017
bzip2 @ ffa63c8 . Jan 9, 2016
c-blosc2 @ 718cc87 2018.09.19 Sep 19, 2018
chameleon . Jan 9, 2016
crush . Mar 11, 2016
daala_ . Jun 3, 2018
density @ 076bb58 2018.02.12 Feb 12, 2018
doboz @ d03e0f9 . Jan 9, 2016
fast-lzma2 @ c263339 2018.04.07 Apr 8, 2018
fastac . Nov 25, 2016
fastbase64 @ d3424da 2018.04.22 Apr 22, 2018
fasthf . Nov 25, 2016
fpaq0p . Nov 25, 2016
fpaqc . Jan 9, 2016
fqz0 . Nov 25, 2016
fsc @ faee546 . Jan 9, 2016
gipfeli @ 04fe241 . Aug 17, 2016
glza . Aug 14, 2016
heatshrink @ 7d419e1 . Jan 9, 2016
heatshrink_ . Jan 9, 2016
isa-l @ 105eeb9 2018.08.25 Aug 25, 2018
libbsc @ 3dea347 . Jan 9, 2016
libdeflate @ 2b6689d 2018.06.16 Jun 16, 2018
liblzf @ fb25820 . Jan 9, 2016
liblzg @ 035f0aa . Jan 9, 2016
libslz 2017.04.22 Apr 22, 2017
libzling @ 5a76d85 2018.02.05 Feb 5, 2018
libzling_ . Jan 9, 2016
lizard @ 02491c7 2018.06.25 Jun 25, 2018
lz4 @ da6f1d2 2018.09.19 Sep 19, 2018
lzfse @ e634ca5 2017.05.27 May 27, 2017
lzham_codec_devel @ 7f1bb92 . Jan 9, 2016
lzlib-1.10 2018.05.04 May 4, 2018
lzlib_ . May 4, 2018
lzma @ ad5961c 2018.05.02 May 2, 2018
lzmat @ 25d9b95 . Jan 9, 2016
lzo @ 0083878 2017.03.03 Mar 3, 2017
lzoma @ 994bfd5 . Jun 26, 2016
lzoma_ . May 13, 2016
miniz @ 46cdde2 2018.07.11 Jul 11, 2018
ms-compress @ f3cc32f 2017.06.26 Jun 26, 2017
nakamichi 2017.03.03 Mar 3, 2017
pithy @ d7d5bd3 . Jan 9, 2016
polar . Jan 9, 2016
ppmdec . Nov 25, 2016
pysap @ a22b72e 2018.08.03 Aug 3, 2018
quicklz @ 9bd5c12 . Jan 9, 2016
quicklz_ . Jan 9, 2016
rans_static @ 8acd745 2018.04.07 Apr 10, 2018
rans_static_ . Mar 3, 2017
shoco @ 4dee0fc . Jan 9, 2016
shrinker . Jan 9, 2016
snappy @ ea660b5 2018.08.25 Aug 25, 2018
snappy-c @ 646c244 2018.03.28 Mar 28, 2018
snappy_ . Jan 9, 2016
subotin . Jan 9, 2016
subotin_ . Nov 25, 2016
tornado @ 2ebae82 . Jan 9, 2016
tornado_ . Jan 9, 2016
turbobench_ . Jan 9, 2016
vecrc . Nov 25, 2016
vs . Jan 9, 2016
wflz @ e742c4b . Jan 9, 2016
xpack @ 7e9381b . Jun 4, 2016
yalz77 @ 6810061 . Jan 9, 2016
yappy . Jan 9, 2016
zlib @ cacf7f1 2017.01.21 Jan 21, 2017
zlib-ng @ 407f375 2018.09.19 Sep 19, 2018
zlibh . Nov 25, 2016
zopfli @ 1ca477e 2018.09.08 Sep 8, 2018
zpaq @ 9ab539f . Sep 23, 2016
zstd @ c8ff520 2018.09.19 Sep 19, 2018
.gitmodules 2018.03.23 Mar 23, 2018
.travis.yml . Jan 9, 2016
README.md Readme Aug 14, 2018
conf.h TurboBench: Config/Platform Jun 29, 2017
makefile TurboBench: Makefile Jul 12, 2018
plugins.cc TurboBench: Compression codecs Jul 9, 2018
plugins.h TurboBench: Compression codecs include Jul 25, 2018
time_.h TurboBench: Benchmark App: include Jul 25, 2018
turbobench.c TurboBench: Benchmark App Aug 3, 2018
turbobench.ini TurboBench: Codec groups Mar 24, 2017

README.md

TurboBench: Compressor BenchmarkBuild Status

  • The only benchmark program including LzTurbo
  • 100% in-memory benchmark, no I/O overhead
  • Include (>70) allmost all popular, latest or fastest compressors in one compiled package
  • Benchmarking Entropy Coders, Lz77, Rolz, BWT and Context mixing compressors
  • Multiple input files with recursive directories
  • Concatenate multiple small files into one multiblock file
  • Avoid cache szenario and cpu throttling found in other benchmarks
  • Automatic sort, update and merge of result files
  • Text, html, csv, markdown output
  • Transfer speed sheet for different connections or devices: GPRS,2G,3G,4G,DSL,Network,HDD,SSD,RAM
  • 👍 Html plot: Speedup + Speed/Ratio
  • All in one executable, no hassless installing of additional packages, graphic libraries, python,...
  • 👍 build in peak memory usage reporting for compression and decompression in html output

Benchmark:

CPU: Sandy bridge i7-2600k at 4.4GHz, gcc 6.3, single thread.

(bold = pareto) MB=1.000.000

C Size ratio% C MB/s D MB/s Name
32823983 32.8 3.40 67.92 lzma 9
32872154 32.8 0.31 315.27 brotli 11d27
32925079 32.9 1.70 70.67 lzturbo 49
33936389 33.9 2.57 1701.35 lzturbo 39
34105370 34.1 3.32 952.59 zstd 22
36751363 36.7 48.30 1701.59 lzturbo 32
36920708 36.7 2.98 2355.32 lzturbo 29
46546059 46.5 163.77 1489.57 lzturbo 31
46805879 46.8 44.66 940.64 zstd 9
48152545 48.1 52.94 349.62 brotli 4
49497505 49.4 2.48 2299.20 lizard 49
49773790 49.7 38.08 1952.73 lzturbo 22
49860700 49.8 16.94 295.99 zlib 9
49962678 49.9 35.70 294.24 zlib 6
50278958 50.2 282.43 1372.91 lzturbo 30
52509931 52.5 290.96 347.16 brotli 1
52549655 52.5 239.35 2153.41 lzturbo 21
52928477 52.9 69.17 276.75 zlib 1
52983490 52.9 393.67 984.00 zstd 1
54251482 54.2 2.60 4367.15 lzturbo 19
54410769 54.4 46.37 3305.22 lz4 9
55923645 55.9 188.40 4200.23 lzturbo 12
57606731 57.6 386.90 3948.64 lzturbo 11
59085723 59.0 698.39 2196.24 lzturbo 20
61455711 61.4 800.71 4003.54 lzturbo 10
61938605 61.9 730.46 3330.40 lz4 1
100098564 100.0 8647.84 8408.10 memcpy

Hardware: ODROID C2 - ARM 64 bits - 2Ghz CPU, OS: Ubuntu 16.04, gcc 5.3
Compressors with versions 16.08.2016
pd3d.tar - 3D Test Set (RAD Game Tools)

C Size ratio C MB/s D MB/s Name
8052040 25.2 0.53 23.23 lzma 9
9092280 28.4 0.08 52.61 brotli 11
9159574 28.7 0.52 119.76 lzturbo 39
9691094 30.3 0.68 94.02 zstd 22
9826984 30.7 3.24 136.91 lzturbo 32
10264073 32.1 26.15 142.28 lzturbo 30
10427322 32.6 4.90 108.76 zstd 9
10938385 34.2 9.46 110.38 lzfse
10966870 34.3 8.92 101.96 zstd 5
11059511 34.6 1.74 98.16 zlib 9
11121480 34.8 7.63 97.47 zlib 6
12649309 39.6 0.61 366.17 lzturbo 29
13302907 41.6 19.07 435.28 lzturbo 21
14237494 44.5 0.66 500.67 lzturbo 19
14283317 44.7 10.04 329.14 lz4 9
14723054 46.1 103.21 483.81 lzturbo 20
14814049 46.4 8.14 484.09 lzturbo 12
16069593 50.3 121.12 365.08 lz4 1
16166867 50.6 111.43 475.66 lzturbo 10
31952896 100.0 1676.10 1704.00 memcpy

Testing:

  • List all plugins: "./turbobench -l2"
  • List all compiled codecs: "./turbobench -l1"
  • type "./turbobench -h" for help
- Groups FASTEST,FAST,EFFICIENT,MAX,OPTIMAL,BWT:
  • test all fast compressors in the lz4, lzturbo, zlib class
    (additional groups can be defined in the "turbobench.ini" file)

    ./turbobench -eFAST file
    
- Codecs:
  • individual codec test (output to screen & file.tbb)

    ./turbobench -elzturbo,19,29,39/brotli,6/zlib,6 file
    
  • retest or test other compressors and merge the results to file.tbb

    ./turbobench -eFAST/bzip2 file
    
- Print + Plot
  • Print result file + "transfer+decompression speedup" plot to file.html for browsing

    ./turbobench -p2 -S2 file.tbb

Compile:

	git clone --recursive git://github.com/powturbo/TurboBench.git
    cd TurboBench
	make
Turbobench mini: compile (only popular codecs)
	make NCOMP2=1 NECODER=1 NSIMD=1

Environment:

OS/Compiler (32 + 64 bits):
  • Linux: GNU GCC (>=4.6)
  • clang (>=3.2)
  • Windows: MinGW-w64
  • Windows: Visual Studio 2015
  • ARM 64 bits/ gcc

Plugins:

Compressor Lz77,Rolz,Bwt,zpaq:

Entropy coder:

bitwise range coder
bytewise range coder
ABS: Asymmetric binary systems
ANS: Asymmetric Numeral Systems
Huffman Coding

Encoding:

Transform:

Last update: 14 Aug 2018