Available

Probe throughput × concurrency

Run N image probes at configurable concurrency. Reports per-probe distribution, total wall time, bytes transferred, throughput (probes/sec). Useful for picking a default concurrency for a known server.

Probe sweep · full matrix

Every strategy × every concurrency against the same N, one combined JSON. Replaces clicking through the single-config probe bench a dozen times to compare strategies. Best throughput per strategy is highlighted in the table.

Packer speed + determinism

Runs packShortestColumn and packJustifiedRows over seeded aspect arrays. Reports per-call distribution across N iterations, then verifies bit-identical output for repeated runs with the same seed.

Compare runs

Drop in saved bench JSONs; they get grouped by network label and laid out in one table so mobile-5g and home-gigabit runs sit side by side. Best throughput per group is highlighted. Handles all three bench shapes (single probe, browser sweep, node sweep).

Range sizing × format

Per-format Range-request byte inputs against a corpus of real URLs (wikimedia / flickr / iconlib / AVIF / HEIC). Reports time distribution, CORS and probe failures, and the effect of the library's re-range retry. Defaults reflect DEFAULT_RANGE_BYTES_BY_FORMAT — the table the library ships with.

First-screen strategies

Four approaches to painting a first viewport, run back-to-back against fresh cache-busts: naive <img>, prepare() with img strategy, prepare() with stream, and manifest-hydrated (no probe at all). Reports time-to-first-skeleton, all-skeletons, first-image, all-images, and bytes.

Virtual-scroll synthetic

Packs N tiles, then scripts a constant-velocity scroll from top to bottom while sampling every rAF. Reports frame-time distribution, dropped frames, active tile count, mount/unmount churn. Regressions in createVirtualTilePool surface here: rising frame times, or active-tile-count drift away from the overscan band, both fail this bench loudly.

Planned