Benchmark
jq79's own numbers on the js-framework-benchmark row table: create, replace, partial update, select, swap, remove and clear, at 1,000 and 10,000 rows. The implementation lives in frameworks/keyed/jq79.
Each number is the synchronous time inside the click: jq79 has no microtask or animation-frame batching, so a set on the store runs its effects - and patches the DOM - before the write that caused it returns, so there's nothing after the click worth waiting for. 10 runs per operation, each from a fresh page load; the fastest and slowest are dropped and the rest averaged for "mean", "median" is the middle sample.
This is not the official js-framework-benchmark harness (webdriver-ts) - no CPU throttling, no devtools tracing, no other frameworks measured alongside it. It exists to catch jq79's own regressions release over release. For React/Vue/Svelte/Preact/vanillajs numbers measured the same way, see the framework comparison.
| Operation | Median | Mean | Min | Max |
|---|---|---|---|---|
| Create 1,000 rows | 34.0 ms | 34.3 ms | 27.3 ms | 41.6 ms |
| Replace all 1,000 rows | 38.6 ms | 39.2 ms | 34.5 ms | 92.9 ms |
| Update every 10th row, 1,000 rows ×16 | 14.9 ms | 15.0 ms | 13.1 ms | 16.4 ms |
| Select a row, 1,000 rows ×16 | 30.5 ms | 30.8 ms | 25.5 ms | 152 ms |
| Swap rows, 1,000 rows ×16 | 64.2 ms | 67.2 ms | 52.0 ms | 210 ms |
| Remove a row | 7.0 ms | 6.7 ms | 4.7 ms | 7.3 ms |
| Create 10,000 rows | 288 ms | 297 ms | 259 ms | 365 ms |
| Update every 10th row, 10,000 rows ×16 | 107 ms | 110 ms | 102 ms | 122 ms |
| Append 1,000 rows to 10,000 | 69.5 ms | 69.5 ms | 59.8 ms | 83.1 ms |
| Clear 10,000 rows | 130 ms | 132 ms | 127 ms | 160 ms |
jq79 v0.7.0 · generated 2026-08-28 · AMD EPYC 9V74 80-Core Processor × 4