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.
Linux (amd/intel, ARM, RISC-V, PowerPC, s390x, loongson), macOS (Apple M1–M5), and Windows (MSYS2, MinGW, Visual C++).
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:
| 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
git clone --depth=1 --recursive https://github.com/powturbo/TurboBench.git
cd TurboBench
make
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@#.tbbSize Modifiers (s):
K, M, G = 1,000, 1,000,000, 1,000,000,000k, m, h = 1024, 1MB, 1GB (default is m, e.g., 64k or 64K)-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# : #=0 compress only, #=1 No check, #=2 ignore errors, #=3 exit on error, #=4 abort on error-f# : check reading/writing outside bounds: #=1 compress, #=2 decompress, #=3 both-v# # = verbosity 0..3 {1}
-RX,Y Show/Reveal only when compression/decompression speed > X/Y MB/s
-Kstr Rank Aggregation: str = combination of R/C/D = Ratio/Comp./Decomp. {RCD}
-kstr str = Remark/Comment string
`-U print memory/stack usage
-l# #=1 print all groups/plugins, #=2 print all codecs
-S# Plot transfer speed:
#=1 Comp speedup#=2 Decomp speedup#=3 Comp 'MB/s'#=4 Decomp 'MB/s'#=4 Comp+Decomp speedup#=5 Comp+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., -N9 for 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 -aFAST
Last update: 13 SEP 2026
C
55.6%
C++
32.1%
Makefile
5.4%
HTML
4.3%
Shell
2.0%
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.
Linux (amd/intel, ARM, RISC-V, PowerPC, s390x, loongson), macOS (Apple M1–M5), and Windows (MSYS2, MinGW, Visual C++).
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:
| 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
git clone --depth=1 --recursive https://github.com/powturbo/TurboBench.git
cd TurboBench
make
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@#.tbbSize Modifiers (s):
K, M, G = 1,000, 1,000,000, 1,000,000,000k, m, h = 1024, 1MB, 1GB (default is m, e.g., 64k or 64K)-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# : #=0 compress only, #=1 No check, #=2 ignore errors, #=3 exit on error, #=4 abort on error-f# : check reading/writing outside bounds: #=1 compress, #=2 decompress, #=3 both-v# # = verbosity 0..3 {1}
-RX,Y Show/Reveal only when compression/decompression speed > X/Y MB/s
-Kstr Rank Aggregation: str = combination of R/C/D = Ratio/Comp./Decomp. {RCD}
-kstr str = Remark/Comment string
`-U print memory/stack usage
-l# #=1 print all groups/plugins, #=2 print all codecs
-S# Plot transfer speed:
#=1 Comp speedup#=2 Decomp speedup#=3 Comp 'MB/s'#=4 Decomp 'MB/s'#=4 Comp+Decomp speedup#=5 Comp+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., -N9 for 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 -aFAST
Last update: 13 SEP 2026
C
55.6%
C++
32.1%
Makefile
5.4%
HTML
4.3%
Shell
2.0%