TurboBench: The Ultimate Data Compression Benchmark
August 7, 2026 · View on GitHub
TurboBench:Compressor Benchmark
TurboBench: The Ultimate Data Compression Benchmark
100+ Codecs. The Powerhouse in a Single Executable — The Compression Lie Detector
Tired of misleading benchmarks with I/O overhead, cache effects, and CPU throttling? TurboBench delivers high-precision, zero-overhead results you can actually trust.
Why TurboBench Stands Out
- The only benchmark that includes LzTurbo alongside 100+ popular, latest, and fastest compressors (LZ77, Rolz, BWT, Context Mixing, Entropy Coders, and more).
- 100% in-memory testing — no disk I/O to skew your results.
- Supports multiple files, recursive directories, and smart concatenation of small files into multiblock tests.
- Built to avoid common pitfalls like cache scenarios and throttling found in other tools.
- Unlock peak performance — TurboBench reduces throttling by intelligently controlling the CPU frequency
- Automatic sorting, updating, and merging of result files.
- A nightly github release is created automatically whenever submodules change.
- Creates a separate result file (file@SET.tbb) for each compressor set
- TurboBench rank aggregation crowns the top compression libraries with 🥇 🏆 👑 — see who's king!
Broad Platform Support
Linux (amd/intel, ARM, RISC-V, PowerPC, s390x, loongson), macOS (Apple M1–M5), and Windows (MSYS2, MinGW, Visual C++).
Rich, Ready-to-Use Outputs
- Text, HTML, CSV, Markdown.
- :sparkles: Transfer speed sheets for real-world scenarios: GPRS, 2G/3G/4G/5G, DSL, Network, HDD, SSD, RAM.
- :+1: HTML plots: Speedup + Speed/Ratio.
- :new:2026.07 :+1: Automatic SVG Bar & Scatter Charts for Compression, Decompression, and Ratio.
- Built-in peak memory usage reporting (compression + decompression) in HTML output.
All-in-one executable — no Python, no extra graphic libraries, zero dependencies, zero installers, zero configuration, no hassle. Just download, run, and benchmark.
Perfect for developers, researchers, and performance enthusiasts who demand accurate, apples-to-apples comparisons.
TurboBench — Precision you can rely on. The gold standard for compression benchmarking. 🚀
Try it now:
- Build or Download turbobench from releases
- List all plugins + version: "./turbobench -l2"
- List all compiled codecs: "./turbobench -l1"
- type "./turbobench -h" for help
Benchmark:
- see : Compression Benchmark
TurboBench vs LzBench
| Feature | TurboBench | Lzbench |
|---|---|---|
| Benchmark | ||
| Large number of codecs (isa-l/zlib-ng/blosc,...) | ✅ | ⚠️ |
| Control throttling via CPU frequency | ✅ | ❌ |
| Automatic sorting, updating & merging of result files | ✅ | ❌ |
| In-place progress display (compression/decompression speed) | ✅ | ❌ |
| Separate results for each compressor set | ✅ | ❌ |
| Data Handling | ||
| Concatenation of small files into one multiblock file | ✅ | ❌ |
| Independent compression of many small files | ✅ | ❌ |
| Multiple files & recursive directories | ✅ | ✅ |
| Support for very large files (multi-GB) | ✅ | ⚠️ |
| Dictionary support | ✅ | ❌ |
| Codec parameter support | ✅ | ❌ |
| Metrics | ||
| Rank aggregation & score with medals | ✅ | ❌ |
| Pareto-front visualization | ✅ | ❌ |
| Multiple output formats (HTML, Markdown, CSV, encode.su) | ✅ | ⚠️ |
| SVG bar & scatter images | ✅ | ❌ |
| Transfer-speed sheets (GPRS → 5G, HDD, SSD, RAM,...) | ✅ | ❌ |
| Peak memory/Stack usage (compress + decompress) | ✅ | ❌ |
| Codec & Configuration Coverage | ||
| Cross-platform support (x86, ARM, RISC-V, PowerPC…) | ✅ | ⚠️ |
| Advanced | ||
| Incremental benchmarking | ✅ | ❌ |
| Simple integration of new codecs | ✅ | ❌ |
| Nightly GitHub release w. executables | ✅ | ❌ |
| Submodule architecture with automatic codec update | ✅ | ❌ |
- 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 -
creates a separate result file (file@SET.tbb) for each compressor set with the 'a' option
./turbobench -eTURBO -aTURBO file ./turbobench -eFAST -aFAST file ./turbobench -eturborc,1/pivco,0,1 -aec file
- Print + Plot
-
Print result file + "transfer+decompression speedup" plot to (file.html -p2) for browsing, (file.md -p4) Markdown format
./turbobench -p2 -S2 file.tbb ./turbobench -p4 file.tbb
- Bar/Scatter charts
- SVG files automatically generated after each benchmark
Compile:
git clone --depth=1 --recursive https://github.com/powturbo/TurboBench.git
cd TurboBench
make
Environment:
OS/Compiler (32 + 64 bits):
- Windows: MinGW-w64 makefile
- Linux amd/intel/risc-v: GNU GCC (>=4.6)
- Linux amd/intel/risc-v: Clang (>=3.2)
- Linux arm: aarch64
- Linux risc-v: riscv64
- MaxOS: XCode (>=9)
- PowerPC ppc64le
- IBM Z series s390x
Plugins:
Compressor Lz77,Rolz,Bwt,zpaq:
- LzTurbo
- Blosc
- BriefLz
- Brotli
- Bzip2
- Chameleon
- CSC
- Density
- Doboz
- FastLz
- Fast-lzma
- glza
- heatshrink
- Intel(R) Intelligent Storage Acceleration Library
- bsc
- kanzi :new: 2026/07
- Libdeflate
- LibLZF
- LibLz
- LibSLZ
- Lz4
- Lz4ultra
- lzjody
- lizard
- Lzfse
- Lzham v1.1
- Lzlib
- Lzmat
- Lzma
- Lzo
- Lzoma
- LZSSE
- LZSA
- Memlz :new:2026.07
- Miniz
- misa77 :new:2026.07
- ms-compress
- Oodle (windows + linux + x86_64 + aarch64)
- OpnZL :new:2026.07
- Pcodec :new:2026.07
- Pithy
- Quicklz
- sap
- shoco
- Shrinker
- Smallz4
- smaz
- Snappy
- Snappy-c
- Tamp :new:2026.07
- Tornado
- Unishox
- wfLZ
- yalz77
- yappy v2011
- zlib
- zlib-ng
- zlib cloudflare
- xpack
- xz :new:2026.05
- zopfli
- zstd
- zpaq
- zxc :new:2026.05
Entropy coder:
bitwise range coder
- TurboRC-Range Coder
- Bitwise RC v2010
- Bitwise vector RC v2012
- AOMedia AV1 entropy coder
- Daala entropy coder
- FastAri v15-10
bytewise range coder
- TurboAC
- subotin range coder v2000
- Fast AC v2006
- FQZ/PPMD Range Coder v15-03
- PPMD Range Coder v15-03
- sserangecoding
ABS: Asymmetric binary systems
ANS: Asymmetric Numeral Systems
- TurboANX-ANS
- TurborANS
- Finite State Coder v15-05
- Finite State Entropy v16-08
- Oodle tans (windows + linux + x86_64 + aarch64)
Huffman Coding
- TurboHF-Huffmann v1.3
- Tornado Huf v0.6a
- zlib Huffmann v1.2.8
- Fast HF v2006
- FPC
- FSE Huff
- Oodle huffman (windows + linux + x86_64 + aarch64)
- Polar Codes v10-07
- Pivco-Huffman :new:2026.07
memcpy
Encoding:
- TurboRLE Turbo Run Length Encoding
- tcobs short messages compression with COBS framing
- TurboBase64 Turbo Base64 Encoding/Decoding
- fastbase64 Base64 Encoding
- base64 Fast Base64 stream encoder/decoder
Transform:
TurboBench Manual
Usage
turbobench [options] [file(s)]
General Options
-eS:S= compressors/groups separated by/. Levels can be specified after,. (e.g.,-ezlib,1/FAST)-b#s:#= blocksize {filesize}. max=1GB.-d#:#= log2 dictionary size: 15-30 {blocksize}. (Only brotli, lzham, lzlib, lzma, zstd)-B#s:#= max benchmark filesize {1GB} (e.g.,-B4G)-s#s:#= min buffer size to duplicate & test small files (e.g.,-s50)-r: process directories recursively
Size Modifiers (s):
K, M, G= 1,000, 1,000,000, 1,000,000,000k, m, h= 1024, 1MB, 1GB (default ism, e.g.,64kor64K)
Benchmark Options
-iX,Y: Decompression/Compression iterations {3}. e.g. -i15,15-t#:#= min time in seconds per iteration {1}-S#: Sleep#min after 2 min processing (minimizing CPU throttling)-K#t: Max time limit for all benchmarks {24h}.t=M:millisecond,s:second,m:minute,h:hour. (e.g.,3h)-D: No process real-time priority setting
Check Options
-C#:#=0compress only,#=1No check,#=2ignore errors,#=3exit on error,#=4abort on error-f#: check reading/writing outside bounds:#=1compress,#=2decompress,#=3both
Output & Plotting Options
-v##= verbosity 0..3 {1}-rX,YShow/Reveal only when compression/decompression speed >X/YMB/s-KstrRank Aggregation: str = combination of R/C/D = Ratio/Comp./Decomp. {RCD}-kstrstr= Remark/Comment string- `-U print memory/stack usage
-l##=1print all groups/plugins,#=2print all codecs-S#Plot transfer speed:#=1Comp speedup#=2Decomp speedup#=3Comp 'MB/s'#=4Decomp 'MB/s'#=4Comp+Decomp speedup#=5Comp+Decomp 'MB/s'
-p#:#= print format (1=text,2=html,3=htm,4=markdown,5/6=vBulletin,7=csv,8=tsv)-Q#:#= Plot window size (0: 1920x1080,1: 1600x900,2: 1280x720,3: 800x600) {1}-g:-g= no merge w/ old result 'file.tbb',-gg= process w/o output (use for fuzzing)-o: Print on standard output-G: Plot memcpy-w: Plot Speedup linear x-axis {log}-z: Plot Ratio/Speed logarithmic x-axis {linear}
Multiblock/Join
-Moutput: Step 1: Concatenate all input files into a single output file organized into multiple blocks-m: Step 2: Process each block independently from the merged file created in Step 1-N: Text files character delimiter (e.g.,-N9for newline, 1 block/line)
Predefined Groups: (see turbobench.ini file)
Examples
./turbobench enwik9 -eFAST/bzip2/lzma,5,9
./turbobench enwik9 -eFAST/OPTIMAL/bsc,0:e2 -i0
./turbobench eECODER -k"entropy coder test"
./turbobench enwik9 -elzma,9:fb273:lc2:lp2:t2
Last update: 8 AUG 2026