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 0

Benchmark index · Median overview · Quality 1 →

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.349×1.000×8
Rust brotli0.090×1.095×8
SIMD Brotli0.100×1.095×8
Burli2.011×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.

binary-64k · alice29 · random-1m · random-64k · empty · repeated-1m · tiny-text · text-1m

binary-64k

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

mbrotli speed / fastest peer (Burli): 1.301×; output: 3,369 / 3,433 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C14.814.79–14.814,222.403,3695.141%1.000×
mbrotli10.2510.24–10.266,095.003,3695.141%1.443×
Rust brotli301.1300.9–301.3207.5851,60378.740%0.049×
SIMD Brotli308307.5–308.7202.9551,60378.740%0.048×
Burli13.3413.33–13.354,683.793,4335.238%1.109×

alice29

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

mbrotli speed / fastest peer (Burli): 0.745×; output: 65,795 / 74,802 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C297.2296.4–297.9488.0265,79543.261%1.000×
mbrotli327.9327.6–328.2442.4065,79543.261%0.907×
Rust brotli1,0211,020–1,022142.0478,21751.428%0.291×
SIMD Brotli932.8932.2–933.4155.4978,21751.428%0.319×
Burli244.4243.2–245.7593.4574,80249.183%1.216×

random-1m

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

mbrotli speed / fastest peer (Burli): 0.659×; output: 1,048,581 / 1,048,581 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C95.4495.34–95.5710,478.251,048,581100.000%1.000×
mbrotli76.0275.98–76.0613,154.611,048,581100.000%1.255×
Rust brotli4,6044,596–4,612217.221,049,345100.073%0.021×
SIMD Brotli5,1125,108–5,117195.611,049,345100.073%0.019×
Burli50.0650.04–50.0919,975.661,048,581100.000%1.906×

random-64k

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

mbrotli speed / fastest peer (Burli): 0.511×; output: 65,540 / 65,540 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C8.9088.905–8.9117,016.1865,540100.006%1.000×
mbrotli8.238.217–8.2477,593.7365,540100.006%1.082×
Rust brotli241.4241.1–241.7258.9565,585100.075%0.037×
SIMD Brotli269.4269.2–269.6232.0365,585100.075%0.033×
Burli4.2094.205–4.21414,849.3865,540100.006%2.116×

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.6817.62–17.76—1—1.000×
mbrotli34.7134.5–35.07—1—0.509×
Rust brotli195.9193.7–198.2—1—0.090×
SIMD Brotli193.3192.6–194.4—1—0.091×
Burli123.5123.3–123.8—1—0.143×

repeated-1m

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

mbrotli speed / fastest peer (Burli): 0.395×; output: 712 / 21 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C131.7131.6–131.97,590.517120.068%1.000×
mbrotli84.4284.32–84.5411,844.897120.068%1.560×
Rust brotli1,4541,453–1,455687.6912,3731.180%0.091×
SIMD Brotli1,2241,223–1,225817.1312,3731.180%0.108×
Burli33.3233.29–33.3630,008.99210.002%3.953×

tiny-text

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

mbrotli speed / fastest peer (Burli): 0.390×; output: 48 / 48 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C0.90.8989–0.901246.6248109.091%1.000×
mbrotli0.10670.1063–0.1073393.4048109.091%8.438×
Rust brotli4.0694.066–4.07110.3148109.091%0.221×
SIMD Brotli3.9263.918–3.93310.6948109.091%0.229×
Burli0.041550.04134–0.041841,009.9348109.091%21.662×

text-1m

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

mbrotli speed / fastest peer (Burli): 0.126×; output: 190,491 / 74,828 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C4,5074,504–4,513221.86190,49118.167%1.000×
mbrotli2,4332,431–2,435410.96190,49118.167%1.852×
Rust brotli7,1397,136–7,142140.08537,43251.254%0.631×
SIMD Brotli6,5796,572–6,584152.01537,43251.254%0.685×
Burli306.7306–307.43,260.5574,8287.136%14.697×