Compression quality 8
Benchmark index · Median overview · ← Quality 7 · Quality 9 →
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.022× | 1.000× | 8 |
| Rust brotli | 0.291× | 1.000× | 8 |
| SIMD Brotli | 0.285× | 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 supports only qualities 0–5; it has no results at this quality.
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 · tiny-text · random-64k · text-1m · random-1m · alice29 · binary-64k · empty
repeated-1m
1 MiB of repeated a bytes. Input: 1,048,576 bytes.
mbrotli speed / fastest peer (Google C): 6.266×; 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.39 | 13 | 0.001% | 1.000× |
| mbrotli | 75.84 | 75.74–75.93 | 13,186.47 | 13 | 0.001% | 6.266× |
| Rust brotli | 1,358 | 1,328–1,392 | 736.56 | 13 | 0.001% | 0.350× |
| SIMD Brotli | 1,453 | 1,437–1,473 | 688.17 | 13 | 0.001% | 0.327× |
tiny-text
44-byte quick-brown-fox sentence. Input: 44 bytes.
mbrotli speed / fastest peer (Google C): 1.361×; 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.827 | 4.823–4.832 | 8.69 | 48 | 109.091% | 1.000× |
| mbrotli | 3.546 | 3.54–3.556 | 11.83 | 48 | 109.091% | 1.361× |
| Rust brotli | 168.7 | 168.1–169.5 | 0.25 | 48 | 109.091% | 0.029× |
| SIMD Brotli | 19.93 | 19.92–19.94 | 2.11 | 48 | 109.091% | 0.242× |
random-64k
64 KiB prefix of the deterministic pseudorandom corpus. Input: 65,536 bytes.
mbrotli speed / fastest peer (Google C): 1.206×; 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 | 136.9 | 136.8–137.1 | 456.51 | 65,540 | 100.006% | 1.000× |
| mbrotli | 113.5 | 112.7–114.4 | 550.44 | 65,540 | 100.006% | 1.206× |
| Rust brotli | 590.7 | 572.3–609.3 | 105.81 | 65,540 | 100.006% | 0.232× |
| SIMD Brotli | 583 | 565.1–602.8 | 107.21 | 65,540 | 100.006% | 0.235× |
text-1m
Alice text repeated cyclically to 1 MiB. Input: 1,048,576 bytes.
mbrotli speed / fastest peer (Google C): 1.058×; output: 50,473 / 50,473 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 3,790 | 3,777–3,805 | 263.83 | 50,473 | 4.813% | 1.000× |
| mbrotli | 3,581 | 3,557–3,612 | 279.22 | 50,473 | 4.813% | 1.058× |
| Rust brotli | 6,736 | 6,705–6,770 | 148.45 | 50,648 | 4.830% | 0.563× |
| SIMD Brotli | 6,663 | 6,647–6,682 | 150.08 | 50,648 | 4.830% | 0.569× |
random-1m
1 MiB of deterministic xorshift64 pseudorandom bytes. Input: 1,048,576 bytes.
mbrotli speed / fastest peer (Google C): 0.985×; output: 1,048,581 / 1,048,581 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 2,805 | 2,798–2,814 | 356.46 | 1,048,581 | 100.000% | 1.000× |
| mbrotli | 2,847 | 2,807–2,892 | 351.19 | 1,048,581 | 100.000% | 0.985× |
| Rust brotli | 4,542 | 4,530–4,554 | 220.17 | 1,048,581 | 100.000% | 0.618× |
| SIMD Brotli | 4,824 | 4,797–4,855 | 207.31 | 1,048,581 | 100.000% | 0.582× |
alice29
Vendored Alice in Wonderland text. Input: 152,089 bytes.
mbrotli speed / fastest peer (Google C): 0.958×; output: 51,187 / 51,187 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 3,437 | 3,433–3,440 | 42.21 | 51,187 | 33.656% | 1.000× |
| mbrotli | 3,587 | 3,582–3,592 | 40.44 | 51,187 | 33.656% | 0.958× |
| Rust brotli | 5,696 | 5,667–5,726 | 25.46 | 51,187 | 33.656% | 0.603× |
| SIMD Brotli | 5,604 | 5,540–5,672 | 25.88 | 51,187 | 33.656% | 0.613× |
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.734×; 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 | 77.72 | 77.55–77.87 | 804.17 | 1,588 | 2.423% | 1.000× |
| mbrotli | 105.9 | 105.8–106.1 | 589.91 | 1,588 | 2.423% | 0.734× |
| Rust brotli | 565.1 | 559.5–573.6 | 110.59 | 1,588 | 2.423% | 0.138× |
| SIMD Brotli | 557.7 | 554.9–560.9 | 112.06 | 1,588 | 2.423% | 0.139× |
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.9 | 17.87–17.93 | — | 1 | — | 1.000× |
| mbrotli | 34.54 | 34.32–34.93 | — | 1 | — | 0.518× |
| Rust brotli | 1.648e+05 | 1.636e+05–1.661e+05 | — | 1 | — | 0.000× |
| SIMD Brotli | 1.64e+05 | 1.633e+05–1.649e+05 | — | 1 | — | 0.000× |