lzbench run, 2026-11-08
mbrotli 0.5.20 against Google Brotli 1.2.0, measured with the lzbench in-memory benchmark on the Silesia corpus. The README’s lzbench table is taken from this run.
Environment
- lzbench master at
a6fa8aa(2026-11-07), reporting itself as lzbench 2.4.1. It vendors Google Brotli 1.2.0 and mbrotli 0.5.20. - gcc 15.2.0, rustc 1.99.1. Built with
make BUILD_ONLY='ZSTD BROTLI MZSTD MBROTLI' MOREFLAGS="-march=native"; the Rust codecs use lzbench’s defaultRUST_TARGET_CPU=native, so both sides target the same CPU. - AMD Ryzen 9 7950X VDS (2 vCPU, KVM), Linux 7.0, default CPU governor and
boost. The benchmark is pinned to one vCPU with
taskset -c 1. - Input:
silesia.tar, 211,957,760 bytes, the twelve Silesia files in a ustar archive, compressed as one stream.
Command
taskset -c 1 ./lzbench -t8,8 -o1 \
-ebrotli,0/mbrotli,0/brotli,2/mbrotli,2/brotli,5/mbrotli,5/brotli,8/mbrotli,8/brotli,11/mbrotli,11 \
silesia.tar
-t8,8 repeats each compression and decompression for at least eight seconds
and reports the fastest iteration. Codecs are interleaved level by level so
that drift on the shared host affects both sides of a pair alike.
Results
lzbench 2.4.1 | GCC 15.2.0 | 64-bit Linux | AMD Ryzen 9 7950X 16-Core Processor
| Compressor name | Compression | Decompress. | Compr. size | Ratio | Filename |
|---|---|---|---|---|---|
| brotli 1.2.0 -0 | 531 MB/s | 452 MB/s | 78466829 | 37.02 | ../silesia.tar |
| mbrotli 0.5.20 -0 | 549 MB/s | 585 MB/s | 78466829 | 37.02 | ../silesia.tar |
| brotli 1.2.0 -2 | 197 MB/s | 542 MB/s | 68070634 | 32.12 | ../silesia.tar |
| mbrotli 0.5.20 -2 | 186 MB/s | 703 MB/s | 68070634 | 32.12 | ../silesia.tar |
| brotli 1.2.0 -5 | 71.1 MB/s | 601 MB/s | 59564581 | 28.10 | ../silesia.tar |
| mbrotli 0.5.20 -5 | 78.2 MB/s | 788 MB/s | 59564581 | 28.10 | ../silesia.tar |
| brotli 1.2.0 -8 | 15.5 MB/s | 662 MB/s | 57149840 | 26.96 | ../silesia.tar |
| mbrotli 0.5.20 -8 | 21.8 MB/s | 862 MB/s | 57149840 | 26.96 | ../silesia.tar |
| brotli 1.2.0 -11 | 0.80 MB/s | 587 MB/s | 50488360 | 23.82 | ../silesia.tar |
| mbrotli 0.5.20 -11 | 1.23 MB/s | 713 MB/s | 50503929 | 23.83 | ../silesia.tar |
Repeatability
A second run of qualities 2 and 5 right after the sweep measured:
| Compressor name | Compression | Decompress. |
|---|---|---|
| brotli 1.2.0 -2 | 204 MB/s | 539 MB/s |
| mbrotli 0.5.20 -2 | 203 MB/s | 706 MB/s |
| brotli 1.2.0 -5 | 77.2 MB/s | 605 MB/s |
| mbrotli 0.5.20 -5 | 83.3 MB/s | 793 MB/s |
Compression speed moved by up to 9% between runs (mbrotli -2: 186 to 203 MB/s) while decompression stayed within 1%. The -0 and -2 compression differences in the sweep (+3.4% and -5.6%) are therefore within noise; -5 (+10% and +8%), -8 and -11 are not. Compressed sizes are equal at qualities 0–8; at quality 11 mbrotli’s output is 15,569 bytes (0.031%) larger.