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 2

Benchmark index · Median overview · ← Quality 1 · Quality 3 →

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.020×1.000×8
Rust brotli0.355×1.000×8
SIMD Brotli0.336×1.000×8
Burli0.793×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 · binary-64k · text-1m · random-64k · random-1m · alice29 · tiny-text · empty

repeated-1m

1 MiB of repeated a bytes. Input: 1,048,576 bytes.

mbrotli speed / fastest peer (Burli): 2.676×; output: 23 / 23 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C468.3468.1–468.42,135.46230.002%1.000×
mbrotli51.1451.08–51.2119,553.21230.002%9.156×
Rust brotli1,2111,209–1,213826.07230.002%0.387×
SIMD Brotli1,3891,382–1,396719.93230.002%0.337×
Burli136.9136.6–137.17,307.17230.002%3.422×

binary-64k

64 KiB of structured binary bytes: ((i / 16) XOR i) modulo 256. Input: 65,536 bytes.

mbrotli speed / fastest peer (Burli): 1.208×; output: 2,673 / 2,688 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C47.347.27–47.331,321.362,6734.079%1.000×
mbrotli23.0623.04–23.072,710.712,6734.079%2.051×
Rust brotli124.1123.9–124.4503.572,6734.079%0.381×
SIMD Brotli131.6131.5–131.9474.762,6734.079%0.359×
Burli27.8527.8–27.912,244.262,6884.102%1.698×

text-1m

Alice text repeated cyclically to 1 MiB. Input: 1,048,576 bytes.

mbrotli speed / fastest peer (Burli): 1.103×; output: 57,403 / 58,006 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C1,3081,308–1,309764.3657,4035.474%1.000×
mbrotli959.6958.7–960.51,042.1157,4035.474%1.363×
Rust brotli2,2622,255–2,271441.9957,3895.473%0.578×
SIMD Brotli2,3712,365–2,377421.7957,3895.473%0.552×
Burli1,0591,058–1,059944.4258,0065.532%1.236×

random-64k

64 KiB prefix of the deterministic pseudorandom corpus. Input: 65,536 bytes.

mbrotli speed / fastest peer (Google C): 1.032×; output: 65,540 / 65,540 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C25.7825.74–25.822,424.5765,540100.006%1.000×
mbrotli24.9924.96–25.022,501.2065,540100.006%1.032×
Rust brotli105.2105–105.5593.9265,540100.006%0.245×
SIMD Brotli101.2101.1–101.3617.6065,540100.006%0.255×
Burli46.8846.85–46.91,333.3165,540100.006%0.550×

random-1m

1 MiB of deterministic xorshift64 pseudorandom bytes. Input: 1,048,576 bytes.

mbrotli speed / fastest peer (Google C): 1.008×; output: 1,048,581 / 1,048,581 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C434.3434.1–434.72,302.301,048,581100.000%1.000×
mbrotli430.8430.6–4312,321.381,048,581100.000%1.008×
Rust brotli1,3581,351–1,366736.141,048,581100.000%0.320×
SIMD Brotli1,2941,292–1,296772.831,048,581100.000%0.336×
Burli684.8684.4–685.31,460.291,048,625100.005%0.634×

alice29

Vendored Alice in Wonderland text. Input: 152,089 bytes.

mbrotli speed / fastest peer (Google C): 0.995×; output: 57,383 / 57,383 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C893.4892.7–894.2162.3557,38337.730%1.000×
mbrotli897.6896.5–899.2161.6057,38337.730%0.995×
Rust brotli1,3141,306–1,324110.3857,37237.723%0.680×
SIMD Brotli1,2711,270–1,273114.1057,37237.723%0.703×
Burli939.2938.4–939.9154.4457,98938.128%0.951×

tiny-text

44-byte quick-brown-fox sentence. Input: 44 bytes.

mbrotli speed / fastest peer (Google C): 0.989×; output: 48 / 48 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C0.99110.9886–0.994742.3448109.091%1.000×
mbrotli1.0021–1.00441.8848109.091%0.989×
Rust brotli3.0213.018–3.02613.8948109.091%0.328×
SIMD Brotli3.0273.024–3.0313.8648109.091%0.327×
Burli1.9481.946–1.95121.5448109.091%0.509×

empty

Empty input; measures API overhead. Input: 0 bytes.

mbrotli speed / fastest peer (Google C): 0.509×; output: 1 / 1 bytes.

Exact measurements and confidence bounds
ImplementationMean, ns95% mean interval, nsMiB/sOutput bytesOutput / inputSpeed / C
Google C17.8117.72–17.93—1—1.000×
mbrotli34.9834.53–35.53—1—0.509×
Rust brotli1,9021,900–1,905—1—0.009×
SIMD Brotli1,8801,877–1,882—1—0.009×
Burli125.1124.7–125.6—1—0.142×