How much does a small read cost?
Compare density and resident read cost. This is a historical genome example, not a prediction for your files.
lzbench and TurboBench rank compressors by density and bulk throughput; SeqBench covers sequence compression; per-format seekable readers exist for gzip (rapidgzip), zstd (zstdra, seekable-zstd) and BGZF (htslib bgzip). None of them compares the cost of reading one region across formats at matched block sizes. That is what this measures.
Matched-g: interactive ACEAPEX vs BGZF
Measured on thirty frozen 2 MiB T2T-CHM13v2.0 windows, not the chr1 snapshot above; ratios are not comparable between the two tables.
ACEAPEX is written by the author of this benchmark. Its density advantage and its latency penalty are both reported below; the harness, corpora and raw samples are in the repository.
| exact g | ACE ratio | BGZF ratio | ACE p50 ms | BGZF p50 ms | ACE p99 ms | BGZF p99 ms |
|---|---|---|---|---|---|---|
| 4 KiB | 4.682708 | 3.794020 | 0.129884 | 0.053380 | 0.276728 | 0.073939 |
| 8 KiB | 5.010591 | 4.139526 | 0.135144 | 0.053901 | 0.265508 | 0.077826 |
| 16 KiB | 5.219838 | 4.406650 | 0.136646 | 0.063028 | 0.261129 | 0.090670 |
| 32 KiB | 5.344308 | 4.643726 | 0.151254 | 0.058850 | 0.280375 | 0.135283 |
| 65,280 B | 5.412621 | 4.810834 | 0.173986 | 0.100158 | 0.396223 | 0.223559 |
ACEAPEX interactive: LIT_CHUNK=64 KiB, FSE_CHUNK=4 KiB. Both codecs use the same runner, frozen corpus and resident 16 KiB request trace.
Matched-g interactive report · GitHub Actions run 35364484648
Independence cost at 16 KiB (separate chr1 c_file(g) scope): ACEAPEX default @ ee5a37e costs 1.632% versus 6.569% for matched zstd-seekable; BGZF is n/a because no same-encoder whole-input baseline exists. Scope and provenance.
Batch sweep scope (2026-09-19): hg38 chr1, N=5000, 16 KiB ranges, workers=1, Actions run 35427975099.
A native batch API is what makes the dense profile usable at all for region reads: it moves from 659.6 to 12,369.7 ranges/s under uniform access. But dense leads interactive only under uniform access. Once requests concentrate, interactive overtakes it somewhere between 12 and 8 bits of access entropy and keeps the lead: at Hα ≈ 2 bits, interactive reaches 869,088 ranges/s against 467,998 for dense. For batch-heavy workloads with any locality, interactive is the profile to pick.
Concentration helps BGZF more than it helps ACEAPEX in the single-request path. Under uniform access bgzip runs 10,040.6 ranges/s against ACEAPEX interactive at 9,086.4, a 1.1× gap. At Hα ≈ 2 bits bgzip reaches 64,722.7 against 13,847.4, a 4.7× gap. The batch API is where ACEAPEX answers locality; the loop path is not.
Try your own data · What is released and what is measured?
The slider selects five measured profiles; it never interpolates. Batch workers: 1; requests: 5,000.
Values behind the plot
Green marks a best observed value only where direction is meaningful and scope matches. Granularity and access break-even are descriptive properties, not rankings. Access entropy appears only in the batch table. Missing values are never plotted as zero.
Historical CPU batch results for the selected profile (separate from c(g))
| Configuration | Method | Workers | H_alpha · bits | ranges/s |
|---|
Separate evidence: zstd frame frontier and declared GPU observations
These scopes are not combined with the primary plot. Full decode values without a confirmed plateau remain data edge.
| Frame bytes | Ratio | p50 ms | p99 ms | Amplification | Full decode MB/s |
|---|
| Device / codec | VRAM GB | Block bytes | Reported / expected blocks | Full decode GB/s | Status |
|---|
Provenance and reproduction
Original JSONL · Raw evidence · Read a provenance record
Reproduction runs measurements and may be expensive. The published data has not been rerun for this presentation.