README.md

April 16, 2026 ยท View on GitHub

TurboBench:Compressor Benchmark

Build ubuntu

  • High performance precision, zero overhead. One might call it the compression lie detector
  • 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
  • :sparkles: Transfer speed sheet for different connections or devices: GPRS,2G,3G,4G,DSL,Network,HDD,SSD,RAM
  • :+1: Html plot: Speedup + Speed/Ratio
  • All in one executable, no hassless installing of additional packages, graphic libraries, python,...
  • :+1: build in peak memory usage reporting for compression and decompression in html output

Release:

  • Build or Download turbobench from releases
  • List all plugins: "./turbobench -l2"
  • List all compiled codecs: "./turbobench -l1"
  • type "./turbobench -h" for help

Benchmark:

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

(bold = pareto) MB=1.000.000

C Sizeratio%C MB/sD MB/sName
3282398332.83.4067.92lzma 9
3287215432.80.31315.27brotli 11d27
3292507932.91.7070.67lzturbo 49
3393638933.92.571701.35lzturbo 39
3410537034.13.32952.59zstd 22
3675136336.748.301701.59lzturbo 32
3692070836.72.982355.32lzturbo 29
4654605946.5163.771489.57lzturbo 31
4680587946.844.66940.64zstd 9
4815254548.152.94349.62brotli 4
4949750549.42.482299.20lizard 49
4977379049.738.081952.73lzturbo 22
4986070049.816.94295.99zlib 9
4996267849.935.70294.24zlib 6
5027895850.2282.431372.91lzturbo 30
5250993152.5290.96347.16brotli 1
5254965552.5239.352153.41lzturbo 21
5292847752.969.17276.75zlib 1
5298349052.9393.67984.00zstd 1
5425148254.22.604367.15lzturbo 19
5441076954.446.373305.22lz4 9
5592364555.9188.404200.23lzturbo 12
5760673157.6386.903948.64lzturbo 11
5908572359.0698.392196.24lzturbo 20
6145571161.4800.714003.54lzturbo 10
6193860561.9730.463330.40lz4 1
100098564100.08647.848408.10memcpy

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 SizeratioC MB/sD MB/sName
805204025.20.5323.23lzma 9
909228028.40.0852.61brotli 11
915957428.70.52119.76lzturbo 39
969109430.30.6894.02zstd 22
982698430.73.24136.91lzturbo 32
1026407332.126.15142.28lzturbo 30
1042732232.64.90108.76zstd 9
1093838534.29.46110.38lzfse
1096687034.38.92101.96zstd 5
1105951134.61.7498.16zlib 9
1112148034.87.6397.47zlib 6
1264930939.60.61366.17lzturbo 29
1330290741.619.07435.28lzturbo 21
1423749444.50.66500.67lzturbo 19
1428331744.710.04329.14lz4 9
1472305446.1103.21483.81lzturbo 20
1481404946.48.14484.09lzturbo 12
1606959350.3121.12365.08lz4 1
1616686750.6111.43475.66lzturbo 10
31952896100.01676.101704.00memcpy
- 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
    
  • Some codecs can accept additional parameters (see option -l1 or file plugins.cc) (colon ':' as separator)

    ./turbobench -elzma,9mt2:d29:a1:fb273:mf=bt4:mc999:lc8:lp0:pb2 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 result file + "transfer+decompression speedup" plot to file.html for browsing

    ./turbobench -p2 -S2 file.tbb

Compile:

	git clone --depth=1 --recursive https://github.com/powturbo/TurboBench.git
    cd TurboBench
	make
	make NCODEC2=1
Turbobench incl. Entropy Coder codecs
    make EC=1

Environment:

OS/Compiler (32 + 64 bits):
  • Windows: MinGW-w64 makefile
  • Linux amd/intel: GNU GCC (>=4.6)
  • Linux amd/intel: Clang (>=3.2)
  • Linux arm: aarch64
  • MaxOS: XCode (>=9)
  • PowerPC ppc64le
  • IBM Z series s390x

Plugins:

Compressor Lz77,Rolz,Bwt,zpaq:

Entropy coder:

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

Encoding:

  • TurboRLE Turbo Run Length Encoding
  • tcobs short messages compression with COBS framing :new:2023.06
  • TurboBase64 Turbo Base64 Encoding/Decoding
  • fastbase64 Base64 Encoding
  • base64 Fast Base64 stream encoder/decoder

Transform:

Last update: 16 APR 2026