Compression quality 10
Benchmark index · Median overview · ← Quality 9 · Quality 11 →
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.243× | 1.000× | 8 |
| Rust brotli | 0.839× | 1.000× | 8 |
| SIMD Brotli | 0.899× | 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 · random-64k · text-1m · alice29 · random-1m · binary-64k · tiny-text · empty
repeated-1m
1 MiB of repeated a bytes. Input: 1,048,576 bytes.
mbrotli speed / fastest peer (Google C): 1.805×; output: 14 / 14 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 8,825 | 8,820–8,830 | 113.32 | 14 | 0.001% | 1.000× |
| mbrotli | 4,889 | 4,868–4,915 | 204.54 | 14 | 0.001% | 1.805× |
| Rust brotli | 1.124e+04 | 1.118e+04–1.132e+04 | 88.95 | 14 | 0.001% | 0.785× |
| SIMD Brotli | 1.104e+04 | 1.1e+04–1.109e+04 | 90.56 | 14 | 0.001% | 0.799× |
random-64k
64 KiB prefix of the deterministic pseudorandom corpus. Input: 65,536 bytes.
mbrotli speed / fastest peer (Google C): 1.387×; 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 | 4,757 | 4,754–4,761 | 13.14 | 65,540 | 100.006% | 1.000× |
| mbrotli | 3,429 | 3,422–3,439 | 18.23 | 65,540 | 100.006% | 1.387× |
| Rust brotli | 5,454 | 5,446–5,463 | 11.46 | 65,540 | 100.006% | 0.872× |
| SIMD Brotli | 5,150 | 5,145–5,156 | 12.14 | 65,540 | 100.006% | 0.924× |
text-1m
Alice text repeated cyclically to 1 MiB. Input: 1,048,576 bytes.
mbrotli speed / fastest peer (Google C): 1.352×; output: 47,492 / 47,492 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 5.012e+04 | 4.985e+04–5.045e+04 | 19.95 | 47,492 | 4.529% | 1.000× |
| mbrotli | 3.709e+04 | 3.697e+04–3.721e+04 | 26.96 | 47,492 | 4.529% | 1.352× |
| Rust brotli | 5.442e+04 | 5.425e+04–5.462e+04 | 18.38 | 47,516 | 4.531% | 0.921× |
| SIMD Brotli | 5.054e+04 | 5.047e+04–5.062e+04 | 19.79 | 47,516 | 4.531% | 0.992× |
alice29
Vendored Alice in Wonderland text. Input: 152,089 bytes.
mbrotli speed / fastest peer (SIMD Brotli): 1.292×; output: 47,477 / 47,488 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 4.371e+04 | 4.362e+04–4.383e+04 | 3.32 | 47,477 | 31.217% | 1.000× |
| mbrotli | 3.369e+04 | 3.366e+04–3.372e+04 | 4.31 | 47,477 | 31.217% | 1.297× |
| Rust brotli | 4.741e+04 | 4.729e+04–4.757e+04 | 3.06 | 47,488 | 31.224% | 0.922× |
| SIMD Brotli | 4.354e+04 | 4.341e+04–4.367e+04 | 3.33 | 47,488 | 31.224% | 1.004× |
random-1m
1 MiB of deterministic xorshift64 pseudorandom bytes. Input: 1,048,576 bytes.
mbrotli speed / fastest peer (Google C): 1.189×; 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 | 1.259e+05 | 1.25e+05–1.273e+05 | 7.94 | 1,048,581 | 100.000% | 1.000× |
| mbrotli | 1.06e+05 | 1.053e+05–1.067e+05 | 9.44 | 1,048,581 | 100.000% | 1.189× |
| Rust brotli | 1.375e+05 | 1.366e+05–1.389e+05 | 7.27 | 1,048,581 | 100.000% | 0.916× |
| SIMD Brotli | 1.428e+05 | 1.421e+05–1.438e+05 | 7.00 | 1,048,581 | 100.000% | 0.882× |
binary-64k
64 KiB of structured binary bytes: ((i / 16) XOR i) modulo 256. Input: 65,536 bytes.
mbrotli speed / fastest peer (Google C): 1.086×; output: 1,063 / 1,063 bytes.
Exact measurements and confidence bounds
| Implementation | Mean, µs | 95% mean interval, µs | MiB/s | Output bytes | Output / input | Speed / C |
|---|---|---|---|---|---|---|
| Google C | 1,610 | 1,608–1,612 | 38.83 | 1,063 | 1.622% | 1.000× |
| mbrotli | 1,482 | 1,481–1,484 | 42.16 | 1,063 | 1.622% | 1.086× |
| Rust brotli | 2,314 | 2,307–2,320 | 27.01 | 1,063 | 1.622% | 0.696× |
| SIMD Brotli | 1,758 | 1,755–1,760 | 35.56 | 1,063 | 1.622% | 0.916× |
tiny-text
44-byte quick-brown-fox sentence. Input: 44 bytes.
mbrotli speed / fastest peer (Google C): 0.965×; 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 | 125.4 | 125.2–125.6 | 0.33 | 48 | 109.091% | 1.000× |
| mbrotli | 130 | 128.3–133.2 | 0.32 | 48 | 109.091% | 0.965× |
| Rust brotli | 155.7 | 155.5–156 | 0.27 | 48 | 109.091% | 0.805× |
| SIMD Brotli | 155.6 | 154.9–156.2 | 0.27 | 48 | 109.091% | 0.806× |
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.89 | 17.87–17.92 | — | 1 | — | 1.000× |
| mbrotli | 34.51 | 34.29–34.88 | — | 1 | — | 0.518× |
| Rust brotli | 1.755e+04 | 1.75e+04–1.761e+04 | — | 1 | — | 0.001× |
| SIMD Brotli | 1.084e+04 | 1.083e+04–1.084e+04 | — | 1 | — | 0.002× |