Local benchmark snapshot
These results compare a 1,000-row table workload across six implementations. Lower time and lower heap use are better. Treat this page as a reproducible local signal, not a universal framework ranking.
The tables show one measured run after five warmups. Use them to investigate a regression or compare a change on the same machine and Chromium version, not to choose a framework from a single number.
create rows
Lower time is better.
| Framework | Time | Compared with reference |
|---|---|---|
| ilha | 60.2 ms | Reference |
| taipa | 60.7 ms | +0.8% slower |
| vanillajs | 63.9 ms | +6.1% slower |
| vue | 69.2 ms | +15.0% slower |
| react | 143.9 ms | +139.0% slower |
| lit-html | 379.2 ms | +529.9% slower |
replace all rows
Lower time is better.
| Framework | Time | Compared with reference |
|---|---|---|
| taipa | 92.2 ms | Reference |
| vue | 92.6 ms | +0.4% slower |
| vanillajs | 96.0 ms | +4.1% slower |
| ilha | 116.6 ms | +26.5% slower |
| react | 130.5 ms | +41.5% slower |
| lit-html | 2367.1 ms | +2467.4% slower |
partial update
Lower time is better.
| Framework | Time | Compared with reference |
|---|---|---|
| vue | 77.7 ms | Reference |
| vanillajs | 96.9 ms | +24.7% slower |
| taipa | 97.0 ms | +24.8% slower |
| ilha | 100.6 ms | +29.5% slower |
| react | 168.0 ms | +116.2% slower |
| lit-html | 2050.8 ms | +2539.4% slower |
run memory
Lower heap use is better.
| Framework | Heap used | Compared with reference |
|---|---|---|
| vanillajs | 2.47 MB | Reference |
| taipa | 2.86 MB | +15.8% more heap |
| ilha | 3.27 MB | +32.4% more heap |
| lit-html | 3.82 MB | +54.7% more heap |
| vue | 5.81 MB | +135.5% more heap |
| react | 11.32 MB | +359.0% more heap |
update memory
Lower heap use is better.
| Framework | Heap used | Compared with reference |
|---|---|---|
| vanillajs | 2.40 MB | Reference |
| taipa | 2.77 MB | +15.6% more heap |
| lit-html | 4.04 MB | +68.6% more heap |
| ilha | 4.17 MB | +74.0% more heap |
| vue | 5.96 MB | +148.5% more heap |
| react | 10.73 MB | +347.4% more heap |
Reproduce locally
pnpm --filter @taipa/benchmarks benchThe harness creates 1,000 rows, replaces all 1,000 rows, updates every tenth row, and records Chromium heap after creation and update. Each table names whether it measures time or heap. Compare runs only on the same machine and browser build.