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.

Create 1,000 rows 34.0 ms Replace all 1,000 rows 38.6 ms Update every 10th row, 1,000 rows ×16 14.9 ms Select a row, 1,000 rows ×16 30.5 ms Swap rows, 1,000 rows ×16 64.2 ms Remove a row 7.0 ms Create 10,000 rows 288 ms Update every 10th row, 10,000 rows ×16 107 ms Append 1,000 rows to 10,000 69.5 ms Clear 10,000 rows 130 ms
OperationMedianMeanMinMax
Create 1,000 rows34.0 ms34.3 ms27.3 ms41.6 ms
Replace all 1,000 rows38.6 ms39.2 ms34.5 ms92.9 ms
Update every 10th row, 1,000 rows ×1614.9 ms15.0 ms13.1 ms16.4 ms
Select a row, 1,000 rows ×1630.5 ms30.8 ms25.5 ms152 ms
Swap rows, 1,000 rows ×1664.2 ms67.2 ms52.0 ms210 ms
Remove a row7.0 ms6.7 ms4.7 ms7.3 ms
Create 10,000 rows288 ms297 ms259 ms365 ms
Update every 10th row, 10,000 rows ×16107 ms110 ms102 ms122 ms
Append 1,000 rows to 10,00069.5 ms69.5 ms59.8 ms83.1 ms
Clear 10,000 rows130 ms132 ms127 ms160 ms

jq79 v0.7.0 · generated 2026-08-28 · AMD EPYC 9V74 80-Core Processor × 4