Reproducible, client-side benchmarks measuring xxdom.js performance. All tests run in your browser right now. ← Back to community site
Methodology: Each benchmark uses a fresh iframe with xxdom.js loaded from scratch.
Timings use performance.now() for sub-millisecond precision. Multiple iterations report the median to reduce noise.
Tests follow the js-framework-benchmark methodology where applicable.
Run in a fresh tab with devtools closed for best results.
Ready. Click "Run All Benchmarks" to start.
1. Bundle Size
Metric
Value
Notes
Source size
39.2 KB(1,373 LOC)
Single file, zero dependencies
Minified
13.9 KB
terser with compress + mangle
Gzipped
5.2 KB
Transfer size over network
2. Initialization
Time to parse JS, scan DOM, and complete first render.
Test
Median
Min
Max
Iterations
Parse + init + first render (minimal template)
—
—
—
—
3. Create Rows
Create N rows from scratch — the standard framework benchmark. Uses xx-for with xx-text and xx-class.
Test
Median
Min
Max
Ops/sec
Create 100 rows
—
—
—
—
Create 1,000 rows
—
—
—
—
Create 10,000 rows
—
—
—
—
4. Update Rows (Partial)
Update every 10th row label in a 1,000-row list. Measures incremental re-render cost.
Test
Median
Min
Max
Update every 10th row (of 1,000)
—
—
—
5. Replace All Rows
Replace 1,000 rows with 1,000 new rows. Full DOM reconciliation.
Test
Median
Min
Max
Replace 1,000 rows
—
—
—
6. Select Row
Toggle selected class on one row in a 1,000-row list. Minimal-change re-render.
Test
Median
Min
Max
Select row (class toggle, 1,000 rows)
—
—
—
7. Swap Rows
Swap 2nd and 999th row. Compares identity-diff vs keyed-diff (xx-key).
Test
Median
Min
Max
Swap rows (identity diff)
—
—
—
Swap rows (keyed, xx-key)
—
—
—
8. Remove Row
Test
Median
Min
Max
Remove row from middle (1,000 rows)
—
—
—
9. Clear All
Test
Median
Min
Max
Clear 1,000 rows
—
—
—
10. Expression Throughput
Re-render 1,000 interpolation expressions on existing DOM.