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.

FrameworkTimeCompared with reference
ilha60.2 msReference
taipa60.7 ms+0.8% slower
vanillajs63.9 ms+6.1% slower
vue69.2 ms+15.0% slower
react143.9 ms+139.0% slower
lit-html379.2 ms+529.9% slower

replace all rows

Lower time is better.

FrameworkTimeCompared with reference
taipa92.2 msReference
vue92.6 ms+0.4% slower
vanillajs96.0 ms+4.1% slower
ilha116.6 ms+26.5% slower
react130.5 ms+41.5% slower
lit-html2367.1 ms+2467.4% slower

partial update

Lower time is better.

FrameworkTimeCompared with reference
vue77.7 msReference
vanillajs96.9 ms+24.7% slower
taipa97.0 ms+24.8% slower
ilha100.6 ms+29.5% slower
react168.0 ms+116.2% slower
lit-html2050.8 ms+2539.4% slower

run memory

Lower heap use is better.

FrameworkHeap usedCompared with reference
vanillajs2.47 MBReference
taipa2.86 MB+15.8% more heap
ilha3.27 MB+32.4% more heap
lit-html3.82 MB+54.7% more heap
vue5.81 MB+135.5% more heap
react11.32 MB+359.0% more heap

update memory

Lower heap use is better.

FrameworkHeap usedCompared with reference
vanillajs2.40 MBReference
taipa2.77 MB+15.6% more heap
lit-html4.04 MB+68.6% more heap
ilha4.17 MB+74.0% more heap
vue5.96 MB+148.5% more heap
react10.73 MB+347.4% more heap

Reproduce locally

pnpm --filter @taipa/benchmarks bench

The 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.