Compression quality 5
Benchmark index · Median overview · ← Quality 4 · Quality 6 →
Recorded run: enc-2026-10-30-amd (2026-10-30). Raw results · Environment · Run analysis.
Median across all datasets
Each of the eight datasets has equal weight, including empty and tiny input. Speed / C = C mean latency / implementation mean latency; output / C = implementation bytes / C bytes. We take the median of these eight per-dataset ratios separately for speed and size. 1× matches C; higher speed and lower output are better. These are medians across datasets, not median sample latencies, and do not imply equal compressed size or statistical significance.
| Implementation | Median speed / C ↑ | Median output / C ↓ | Datasets |
|---|---|---|---|
| Google C | 1.000× | 1.000× | 8 |
| mbrotli | 1.017× | 1.000× | 8 |
| Rust brotli | 0.442× | 1.000× | 8 |
| SIMD Brotli | 0.355× | 1.000× | 8 |
| Burli | 0.942× | 1.000× | 8 |
Measurement setup and interpretation
Google C Brotli 1.2.0, mbrotli at the recorded optimized checkout, Rust brotli 9.0.0, and SIMD Brotli 10.0.1 are compared at this quality. Burli 0.3.3 is also included.
These are cold native API measurements: construction, allocation, compression, and disposal. Generic mode, window 22, known input size; 20 samples, 1 s warmup, at least 3 s measurement. Host: AMD Ryzen 9 7950X (two KVM vCPUs), one benchmark process at a time pinned to logical CPU 1; codec calls and encoder/decoder sweeps ran serially; no concurrent builds, tests, fuzzers or profilers; unset; ordinary Cargo release defaults; runtime SIMD dispatch. Rust brotli and SIMD Brotli include their native 4 KiB I/O adapters.
Chart whiskers and table intervals describe 95% confidence bounds on mean timing. They do not capture all host or allocator variation. Throughput bounds are transformed latency bounds. Output / input is compressed bytes divided by input bytes; smaller is better, and values above 100% mean expansion. For empty input, throughput and output / input are undefined (—). See the run analysis for measurement limitations.
Dataset details
Ordered by mbrotli speed / fastest competing implementation, highest first; all eight datasets are shown. This order uses recorded mean latency, not statistical significance. Bars start at zero.
repeated-1m · text-1m · binary-64k · alice29 · tiny-text · random-1m · random-64k · empty
repeated-1m
1 MiB of repeated a bytes. Input: 1,048,576 bytes.
mbrotli speed / fastest peer (Google C): 5.073×; output: 13 / 13 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 475.2 | 474.9–475.5 | 2,104.23 | 13 | 0.001% | 1.000× |
| mbrotli | 93.67 | 93.58–93.77 | 10,675.73 | 13 | 0.001% | 5.073× |
| Rust brotli | 955.8 | 950.8–961 | 1,046.23 | 13 | 0.001% | 0.497× |
| SIMD Brotli | 1,166 | 1,161–1,173 | 857.68 | 13 | 0.001% | 0.408× |
| Burli | 953.3 | 952.9–953.8 | 1,048.96 | 13 | 0.001% | 0.499× |
text-1m
Alice text repeated cyclically to 1 MiB. Input: 1,048,576 bytes.
mbrotli speed / fastest peer (Google C): 1.167×; output: 51,228 / 51,228 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 2,787 | 2,783–2,791 | 358.86 | 51,228 | 4.885% | 1.000× |
| mbrotli | 2,389 | 2,385–2,394 | 418.62 | 51,228 | 4.885% | 1.167× |
| Rust brotli | 3,913 | 3,896–3,932 | 255.57 | 52,238 | 4.982% | 0.712× |
| SIMD Brotli | 4,187 | 4,182–4,194 | 238.82 | 51,238 | 4.886% | 0.665× |
| Burli | 3,482 | 3,479–3,485 | 287.19 | 52,664 | 5.022% | 0.800× |
binary-64k
64 KiB of structured binary bytes: ((i / 16) XOR i) modulo 256. Input: 65,536 bytes.
mbrotli speed / fastest peer (Google C): 0.975×; output: 1,588 / 1,588 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 74.02 | 73.9–74.12 | 844.39 | 1,588 | 2.423% | 1.000× |
| mbrotli | 75.89 | 75.8–75.97 | 823.55 | 1,588 | 2.423% | 0.975× |
| Rust brotli | 219.8 | 219.6–220 | 284.38 | 1,588 | 2.423% | 0.337× |
| SIMD Brotli | 337.9 | 337.3–338.6 | 184.95 | 1,588 | 2.423% | 0.219× |
| Burli | 102.5 | 102.4–102.6 | 609.86 | 1,593 | 2.431% | 0.722× |
alice29
Vendored Alice in Wonderland text. Input: 152,089 bytes.
mbrotli speed / fastest peer (Burli): 0.967×; output: 52,809 / 54,228 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 2,362 | 2,361–2,364 | 61.40 | 52,809 | 34.722% | 1.000× |
| mbrotli | 2,256 | 2,255–2,258 | 64.29 | 52,809 | 34.722% | 1.047× |
| Rust brotli | 3,018 | 3,013–3,024 | 48.05 | 52,808 | 34.722% | 0.783× |
| SIMD Brotli | 3,403 | 3,394–3,414 | 42.62 | 52,808 | 34.722% | 0.694× |
| Burli | 2,181 | 2,179–2,184 | 66.49 | 54,228 | 35.655% | 1.083× |
tiny-text
44-byte quick-brown-fox sentence. Input: 44 bytes.
mbrotli speed / fastest peer (Burli): 0.924×; output: 48 / 48 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 4.766 | 4.763–4.769 | 8.80 | 48 | 109.091% | 1.000× |
| mbrotli | 3.367 | 3.364–3.369 | 12.46 | 48 | 109.091% | 1.416× |
| Rust brotli | 14.23 | 14.2–14.26 | 2.95 | 48 | 109.091% | 0.335× |
| SIMD Brotli | 17.05 | 17.04–17.07 | 2.46 | 48 | 109.091% | 0.279× |
| Burli | 3.11 | 3.107–3.113 | 13.49 | 48 | 109.091% | 1.533× |
random-1m
1 MiB of deterministic xorshift64 pseudorandom bytes. Input: 1,048,576 bytes.
mbrotli speed / fastest peer (Burli): 0.581×; output: 1,048,581 / 1,048,625 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 1,169 | 1,168–1,170 | 855.60 | 1,048,581 | 100.000% | 1.000× |
| mbrotli | 1,183 | 1,182–1,184 | 845.21 | 1,048,581 | 100.000% | 0.988× |
| Rust brotli | 2,548 | 2,545–2,550 | 392.50 | 1,048,581 | 100.000% | 0.459× |
| SIMD Brotli | 2,606 | 2,602–2,609 | 383.78 | 1,048,581 | 100.000% | 0.449× |
| Burli | 686.8 | 686–687.7 | 1,455.92 | 1,048,625 | 100.005% | 1.702× |
random-64k
64 KiB prefix of the deterministic pseudorandom corpus. Input: 65,536 bytes.
mbrotli speed / fastest peer (Burli): 0.567×; output: 65,540 / 65,540 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 72.8 | 72.74–72.86 | 858.54 | 65,540 | 100.006% | 1.000× |
| mbrotli | 82.64 | 82.38–82.9 | 756.27 | 65,540 | 100.006% | 0.881× |
| Rust brotli | 171.5 | 171.1–171.8 | 364.52 | 65,540 | 100.006% | 0.425× |
| SIMD Brotli | 240.1 | 239.9–240.4 | 260.30 | 65,540 | 100.006% | 0.303× |
| Burli | 46.87 | 46.84–46.89 | 1,333.59 | 65,540 | 100.006% | 1.553× |
empty
Empty input; measures API overhead. Input: 0 bytes.
mbrotli speed / fastest peer (Google C): 0.518×; output: 1 / 1 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, ns | 95% mean interval, ns | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 17.87 | 17.84–17.9 | — | 1 | — | 1.000× |
| mbrotli | 34.53 | 34.28–34.96 | — | 1 | — | 0.518× |
| Rust brotli | 8,399 | 8,392–8,408 | — | 1 | — | 0.002× |
| SIMD Brotli | 1.107e+04 | 1.106e+04–1.109e+04 | — | 1 | — | 0.002× |
| Burli | 124.7 | 124.5–125 | — | 1 | — | 0.143× |