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 29.2 ms Replace all 1,000 rows 35.1 ms Update every 10th row, 1,000 rows ×16 11.2 ms Select a row, 1,000 rows ×16 24.9 ms Swap rows, 1,000 rows ×16 55.6 ms Remove a row 6.3 ms Create 10,000 rows 291 ms Update every 10th row, 10,000 rows ×16 95.8 ms Append 1,000 rows to 10,000 61.4 ms Clear 10,000 rows 123 ms
OperationMedianMeanMinMax
Create 1,000 rows29.2 ms31.2 ms25.3 ms39.8 ms
Replace all 1,000 rows35.1 ms35.2 ms31.7 ms42.3 ms
Update every 10th row, 1,000 rows ×1611.2 ms10.9 ms9.7 ms11.6 ms
Select a row, 1,000 rows ×1624.9 ms26.4 ms23.6 ms85.2 ms
Swap rows, 1,000 rows ×1655.6 ms56.7 ms48.9 ms112 ms
Remove a row6.3 ms6.2 ms5.6 ms7.4 ms
Create 10,000 rows291 ms288 ms248 ms372 ms
Update every 10th row, 10,000 rows ×1695.8 ms98.0 ms92.0 ms124 ms
Append 1,000 rows to 10,00061.4 ms64.0 ms58.2 ms78.9 ms
Clear 10,000 rows123 ms123 ms120 ms128 ms

jq79 v0.7.5 · generated 2026-10-20 · AMD EPYC 9V74 80-Core Processor × 4