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 4

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

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.183×1.000×8
Rust brotli0.529×1.000×8
SIMD Brotli0.488×1.000×8
Burli1.201×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 · text-1m · random-64k · tiny-text · alice29 · binary-64k · random-1m · empty

repeated-1m

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

mbrotli speed / fastest peer (Burli): 3.002×; output: 13 / 13 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C477476.6–477.62,096.23130.001%1.000×
mbrotli77.3377.25–77.412,932.26130.001%6.169×
Rust brotli906.8901–913.11,102.84130.001%0.526×
SIMD Brotli1,0501,049–1,052952.25130.001%0.454×
Burli232.2231.9–232.44,307.28130.001%2.055×

text-1m

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

mbrotli speed / fastest peer (Burli): 1.245×; output: 55,915 / 57,773 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C1,7231,722–1,725580.2955,9155.332%1.000×
mbrotli1,3621,360–1,365734.2255,9155.332%1.265×
Rust brotli2,4322,413–2,455411.1155,8915.330%0.708×
SIMD Brotli2,5212,509–2,536396.7355,8915.330%0.684×
Burli1,6961,694–1,698589.7957,7735.510%1.016×

random-64k

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

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

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C45.4745.43–45.521,374.4465,540100.006%1.000×
mbrotli41.3341.3–41.361,512.2165,540100.006%1.100×
Rust brotli126.6126.2–127493.6865,540100.006%0.359×
SIMD Brotli124.4124.2–124.5502.6065,540100.006%0.366×
Burli46.9246.87–46.971,332.1365,540100.006%0.969×

tiny-text

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

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

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C4.5974.593–4.6029.1348109.091%1.000×
mbrotli3.1623.157–3.16813.2748109.091%1.454×
Rust brotli8.6568.647–8.6664.8548109.091%0.531×
SIMD Brotli8.8228.818–8.8264.7648109.091%0.521×
Burli3.2453.242–3.24712.9348109.091%1.417×

alice29

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

mbrotli speed / fastest peer (Burli): 0.971×; output: 55,504 / 57,813 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C1,5611,559–1,56392.9455,50436.494%1.000×
mbrotli1,5101,509–1,51196.0455,50436.494%1.033×
Rust brotli1,9211,913–1,93075.5155,48936.485%0.812×
SIMD Brotli1,9091,906–1,91175.9955,48936.485%0.818×
Burli1,4661,465–1,46798.9457,81338.013%1.065×

binary-64k

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

mbrotli speed / fastest peer (Burli): 0.863×; output: 2,554 / 2,593 bytes.

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C56.1856.14–56.221,112.532,5543.897%1.000×
mbrotli40.2340.2–40.261,553.512,5543.897%1.396×
Rust brotli157.4157.1–157.7397.082,5673.917%0.357×
SIMD Brotli157.5157–158396.842,5673.917%0.357×
Burli34.7134.68–34.741,800.782,5933.957%1.619×

random-1m

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

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

Exact measurements and confidence bounds
ImplementationMean, µs95% mean interval, µsMiB/sOutput bytesOutput / inputSpeed / C
Google C917.7917.1–918.31,089.701,048,581100.000%1.000×
mbrotli895.9894.9–896.81,116.241,048,581100.000%1.024×
Rust brotli1,3121,309–1,315762.411,048,581100.000%0.700×
SIMD Brotli1,3101,305–1,317763.371,048,581100.000%0.701×
Burli685.9685.3–686.51,458.041,048,625100.005%1.338×

empty

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

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

Exact measurements and confidence bounds
ImplementationMean, ns95% mean interval, nsMiB/sOutput bytesOutput / inputSpeed / C
Google C18.1317.97–18.38—1—1.000×
mbrotli34.7234.46–35.16—1—0.522×
Rust brotli3,4983,496–3,500—1—0.005×
SIMD Brotli3,5243,520–3,527—1—0.005×
Burli125.4125.2–125.5—1—0.145×