Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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.

ImplementationMedian speed / C ↑Median output / C ↓Datasets
Google C1.000×1.000×8
mbrotli1.243×1.000×8
Rust brotli0.839×1.000×8
SIMD Brotli0.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
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C8,8258,820–8,830113.32140.001%1.000×
mbrotli4,8894,868–4,915204.54140.001%1.805×
Rust brotli1.124e+041.118e+04–1.132e+0488.95140.001%0.785×
SIMD Brotli1.104e+041.1e+04–1.109e+0490.56140.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
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C4,7574,754–4,76113.1465,540100.006%1.000×
mbrotli3,4293,422–3,43918.2365,540100.006%1.387×
Rust brotli5,4545,446–5,46311.4665,540100.006%0.872×
SIMD Brotli5,1505,145–5,15612.1465,540100.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
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C5.012e+044.985e+04–5.045e+0419.9547,4924.529%1.000×
mbrotli3.709e+043.697e+04–3.721e+0426.9647,4924.529%1.352×
Rust brotli5.442e+045.425e+04–5.462e+0418.3847,5164.531%0.921×
SIMD Brotli5.054e+045.047e+04–5.062e+0419.7947,5164.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
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C4.371e+044.362e+04–4.383e+043.3247,47731.217%1.000×
mbrotli3.369e+043.366e+04–3.372e+044.3147,47731.217%1.297×
Rust brotli4.741e+044.729e+04–4.757e+043.0647,48831.224%0.922×
SIMD Brotli4.354e+044.341e+04–4.367e+043.3347,48831.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
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C1.259e+051.25e+05–1.273e+057.941,048,581100.000%1.000×
mbrotli1.06e+051.053e+05–1.067e+059.441,048,581100.000%1.189×
Rust brotli1.375e+051.366e+05–1.389e+057.271,048,581100.000%0.916×
SIMD Brotli1.428e+051.421e+05–1.438e+057.001,048,581100.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
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C1,6101,608–1,61238.831,0631.622%1.000×
mbrotli1,4821,481–1,48442.161,0631.622%1.086×
Rust brotli2,3142,307–2,32027.011,0631.622%0.696×
SIMD Brotli1,7581,755–1,76035.561,0631.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
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C125.4125.2–125.60.3348109.091%1.000×
mbrotli130128.3–133.20.3248109.091%0.965×
Rust brotli155.7155.5–1560.2748109.091%0.805×
SIMD Brotli155.6154.9–156.20.2748109.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
ImplementationMean, ns95% mean interval, nsMiB/sOutput bytesOutput / inputSpeed / C
Google C17.8917.87–17.92—1—1.000×
mbrotli34.5134.29–34.88—1—0.518×
Rust brotli1.755e+041.75e+04–1.761e+04—1—0.001×
SIMD Brotli1.084e+041.083e+04–1.084e+04—1—0.002×