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 | 29.2 ms | 31.2 ms | 25.3 ms | 39.8 ms |
| Replace all 1,000 rows | 35.1 ms | 35.2 ms | 31.7 ms | 42.3 ms |
| Update every 10th row, 1,000 rows ×16 | 11.2 ms | 10.9 ms | 9.7 ms | 11.6 ms |
| Select a row, 1,000 rows ×16 | 24.9 ms | 26.4 ms | 23.6 ms | 85.2 ms |
| Swap rows, 1,000 rows ×16 | 55.6 ms | 56.7 ms | 48.9 ms | 112 ms |
| Remove a row | 6.3 ms | 6.2 ms | 5.6 ms | 7.4 ms |
| Create 10,000 rows | 291 ms | 288 ms | 248 ms | 372 ms |
| Update every 10th row, 10,000 rows ×16 | 95.8 ms | 98.0 ms | 92.0 ms | 124 ms |
| Append 1,000 rows to 10,000 | 61.4 ms | 64.0 ms | 58.2 ms | 78.9 ms |
| Clear 10,000 rows | 123 ms | 123 ms | 120 ms | 128 ms |
jq79 v0.7.5 · generated 2026-10-20 · AMD EPYC 9V74 80-Core Processor × 4