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.
- 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 and benchmarks are 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!
Linux (amd/intel, ARM, RISC-V, PowerPC, s390x, loongson), macOS (Apple M1–M5), and Windows (MSYS2, MinGW, Visual C++).
- Text, HTML, CSV, Markdown.
- ✨ Transfer speed sheets for real-world scenarios: GPRS, 2G/3G/4G/5G, DSL, Network, HDD, SSD, RAM.
- 👍 HTML plots: Speedup + Speed/Ratio.
- 🆕2026.07 👍 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
- see : Compression Benchmark
| 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…) | ✅ | |
| Submodule architecture with automatic codec update | ✅ | ❌ |
| Use codecs’ built-in tools, matching original builds & optimizations | ✅ | ❌ |
| Advanced | ||
| Incremental benchmarking | ✅ | ❌ |
| Simple integration of new codecs | ✅ | ❌ |
| Nightly GitHub release w. executables | ✅ | ❌ |
-
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
-
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 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
- SVG files automatically generated after each benchmark
git clone --depth=1 --recursive https://github.com/powturbo/TurboBench.git
cd TurboBench
make
- 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
| Compressor | Added | Language | Comment |
|---|---|---|---|
| LzTurbo | c | ||
| AMD AOCL | 2026/09 | c++ | tuned lz4,zstd,bzip2 for amd64 |
| BriefLz | c | ||
| Brotli | c | ||
| Chameleon | c | ||
| CSC | c | ||
| Density | 2026/09 | rust | |
| Doboz | c | ||
| FastLz | c | ||
| Fast-lzma | c | ||
| glza | c | ||
| Glyd | 2026/09 | rust | |
| heatshrink | c | short strings | |
| Iguana | 2026/09 | c++ | Not reliable |
| Intel(R) ISA-L | c | ||
| kanzi | 2026/07 | c++ | lz,bwt,paq |
| lib | 2026/09 | c | |
| Libdeflate | c | ||
| LibLZF | c | ||
| LibLz | c | ||
| LibSLZ | c | ||
| Lz4 | c | ||
| Lz4ultra | c | ||
| lzjody | c | ||
| lizard | c | ||
| Lzfse | c | ||
| Lzham v1.1 | c++ | ||
| Lzlib | 2026/09 | c | |
| Lzmat | c | ||
| Lzma | c | ||
| Lzo | c | ||
| Lzoma | c | ||
| lzraven | 2026/09 | c | Apple's lzraven reimplementation |
| LZSSE | c | ||
| LZSA | c | ||
| mbrotli | 2026/09 | rust | Brotli reimplementation |
| Memlz | 2026/07 | c | |
| Miniz | c | ||
| misa77 | 2026/07 | c++ | |
| ms-compress | c++ | ||
| mzip | 2026/09 | c | too slow |
| Oodle | c++ | windows/linux/macos x86_64/arm64 | |
| Pithy | c | ||
| Quicklz | c | ||
| sap | c++ | ||
| shoco | c | short strings | |
| Shrinker | c | ||
| Smallz4 | c | ||
| smaz | c | short strings | |
| Snappy | c++ | ||
| Snappy-c | c | ||
| Tamp | 2026/07 | c | |
| Tornado | c++ | ||
| Unishox | c | short strings | |
| wfLZ | c | ||
| yalz77 | c | ||
| yappy v2011 | c | ||
| xpack | |||
| xz | 2026/05 | c | |
| zlib | c | ||
| zlib-ng | c | ||
| zlib cloudflare | |||
| zopfli | c | ||
| zstd | c | ||
| zpaq | c++ | ||
| zxc | 2026/05 | c |
| Compressor | Added | Language | Comment |
|---|---|---|---|
| libbsc/bsc | c++ | ||
| BwtSatan | 2026/09 | c | |
| bzip2 | c | ||
| bzip3 | c | ||
| kanzi bwt (level 5,6,7) | 2026/07 | c | |
| Pulsar / rust | 2026/09 | c | very slow |
| Compressor | Added | Language | Comment |
|---|---|---|---|
| Blosc | c | ||
| OpnZL | 2026/07 | c++ | |
| Pcodec | 2026/07 | rust |
| Compressor | Added | Language | Comment |
|---|---|---|---|
| bitwise range coder | |||
| TurboRC-Range Coder | c | ||
| Bitwise RC v2010 | c | ||
| Bitwise vector RC v2012 | c | ||
| AOMedia AV1 entropy coder | c | ||
| Daala entropy coder | c | ||
| FastAri v15-10 | c | ||
| bytewise range coder | |||
| TurboAC | c | ||
| subotin range coder v2000 | c | ||
| Fast AC v2006 | c | ||
| FQZ/PPMD Range Coder v15-03 | c | ||
| PPMD Range Coder v15-03 | c | ||
| sserangecoding | c | ||
| ABS: Asymmetric binary systems | |||
| Fpaqc:Asymmetric Binary Coder v07-12 | c++ | ||
| ANS: Asymmetric Numeral Systems | |||
| TurboANX-ANS | c | ||
| TurborANS | c | ||
| Finite State Coder v15-05 | c | ||
| Finite State Entropy v16-08 | c | ||
| Oodle tans | 2026/09 | c++ | windows/linux/macos |
| Huffman Coding | |||
| TurboHF-Huffmann v1.3 | c | ||
| Tornado Huf v0.6a | c++ | ||
| zlib Huffmann v1.2.8 | c | ||
| Fast HF v2006 | c | ||
| FPC | c | ||
| FSE Huff | c | ||
| Oodle huffman | 2026/09 | c++ | windows/linux/macos |
| Polar Codes v10-07 | c | ||
| Pivco-Huffman | 2026.07 | c++ |
- 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
turbobench [options] [file(s)]
-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-a#: Add category # to tbb filename. file.tbb -> file@#.tbb
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)
-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
-C#:#=0compress only,#=1No check,#=2ignore errors,#=3exit on error,#=4abort on error-f#: check reading/writing outside bounds:#=1compress,#=2decompress,#=3both
-
-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}
-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)
./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
./turbobench enwik9 -eFAST -aFASTLast update: 28 SEP 2026
