Skip to content

farruggia/TurboBench

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TurboBench: Compressor BenchmarkBuild Status

  • TurboBench
  • The only benchmark program including LzTurbo
  • 100% in-memory benchmark, no I/O overhead
  • Include (>60) allmost all popular, latest or fastest compressors in one compiled package
  • No other compressor benchmark includes more codecs or offer more precision and features
  • Benchmarking Entropy Coders, Lz77, Rolz, BWT and Context mixing compressors
  • Minimum plugins call overhead
  • Set one, a group or several compressors to benchmark at the command line
  • Multiple input files with recursive directories
  • Concatenate multiple small files into one multiblock file
  • Benchmark multiblock file as one large block, but each block processed separatelly
  • Avoid cache szenario found in other benchmarks with small files
  • Set block size, file size limit,...
  • Set number of iterations, number of runs, benchmarks, set max. time per run and for all benchmarks.
  • Automatic sort
  • πŸ†• automatic update & merge of result files
  • πŸ†• Text, html, csv, markdown and other output formats without retesting
  • πŸ†• html output with sortable tables
  • πŸ†• Transfer speed sheet for different connections or devices: GPRS,2G,3G,4G,DSL,Network,HDD,SSD,RAM
  • πŸ‘ Html plot: Speedup + Speed/Ratio
  • Linux and Windows binaries
  • 100% C/C++, w/o inline assembly
  • Enable/disable groups or individual codecs at compile time
  • 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
  • πŸ†• Encoding and Transform plugins

Download benchmark executable incl. LzTurbo:

Benchmark:

CPU: Sandy bridge i7-2600k at 4.2GHz, gcc 5.2, ubuntu 15.10, single thread.

  • Realistic and practical benchmark with large files
  • No PURE cache benchmark
- Data files:

TurboBench compressor benchmark:


Seedup

Speed/Ratio

(bold = pareto) MB=1.000.000

C Size ratio% C MB/s D MB/s Name
32798929 32.8 2.79 65.49 lzma 9
32922377 32.9 1.61 69.65 lzturbo 49
33761620 33.7 2.64 277.04 lzham 4
34109576 34.1 2.17 1318.56 lzturbo 39
35638896 35.6 1.19 950.41 zstd 20
36944243 36.9 69.99 1411.77 lzturbo 32
37313258 37.3 2.40 2149.57 lzturbo 29
41668560 41.6 0.19 246.43 brotli 11
45799999 45.8 27.03 354.38 brotli 6
46304388 46.3 35.75 347.99 brotli 5
46492542 46.4 191.69 1186.68 lzturbo 31
46875269 46.8 48.58 695.99 zstd 9
48836109 48.8 113.95 676.74 zstd 5
49324183 49.3 141.06 337.46 brotli 1
49860700 49.8 16.94 295.99 zlib 9
49918739 49.9 288.52 1082.09 lzturbo 30a
49962678 49.9 35.70 294.24 zlib 6
50027825 50.0 52.85 1899.72 lzturbo 22
50311200 50.3 312.35 1090.91 lzturbo 30
50337788 50.3 6.73 1428.58 lz5 9
52597358 52.5 262.30 2068.57 lzturbo 21
52928477 52.9 69.17 276.75 zlib 1
53112430 53.1 298.70 442.42 zstd 1
54265487 54.2 2.01 3883.96 lzturbo 19
54423519 54.4 46.33 1918.40 lz4 9
55400947 55.3 465.29 1900.38 lzturbo 20a
55764172 55.7 405.79 1517.45 lz5 1
55923645 55.9 141.96 3713.00 lzturbo 12
57606731 57.6 263.89 3500.06 lzturbo 11
59090242 59.0 631.43 2099.72 lzturbo 20
60016380 60.0 596.92 3361.22 lzturbo 10a
61460109 61.4 705.32 3500.41 lzturbo 10
61938605 61.9 671.21 2069.81 lz4 1
100098564 100.0 8647.84 8408.10 memcpy

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:

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

    ./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

Environment:

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

References:

Last update: 26 JUN 2016

About

TurboBench Compression Benchmark

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 82.1%
  • C++ 14.2%
  • HTML 2.1%
  • Makefile 1.1%
  • Shell 0.3%
  • Roff 0.2%