Same world · four renderers

Game of Life runtime comparison

Four production builds render the same finite board, controls, presets, accessibility contract, and visual system. Lower timings are better; the fastest result in each row is highlighted.

Kineticadev · 98.3 KB gzip React19.2.7 · 62.3 KB gzip Compose HTML1.11.1 · 177.3 KB gzip Vanillabrowser DOM · 4.1 KB gzip

Measured performance

Median of 5 measured runs after 1 warmup; milliseconds and slowdown versus the fastest implementation per operation.

OperationKineticaReactCompose HTMLVanilla
Cold startup + 3,456-cell mount66.90 ms1.88×56.00 ms1.57×107.40 ms3.02×35.60 ms1.00×
Load 48-cell Pulsar preset21.42 ms1.00×21.87 ms1.02×34.62 ms1.62×27.18 ms1.27×
Advance Pulsar one generation24.23 ms1.00×28.43 ms1.17×31.85 ms1.31×24.82 ms1.02×
Populate 24% of the 3,456-cell board140.39 ms1.18×155.99 ms1.31×140.28 ms1.18×118.71 ms1.00×
Advance a randomized board one generation121.97 ms1.04×149.87 ms1.28×128.78 ms1.10×116.83 ms1.00×
Toggle one editable board cell14.50 ms1.08×18.93 ms1.41×13.75 ms1.03×13.41 ms1.00×
Clear the 48-cell Pulsar21.00 ms1.04×20.15 ms1.00×33.28 ms1.65×20.25 ms1.00×
Chromium 149.0.7827.55arm641280x9002026-07-16
Durations use the same trace parser as Kinetica’s framework benchmark: click dispatch through the last paint/commit. Interaction traces request reduced motion so the shared 160 ms cell-birth decoration cannot mask renderer work. Startup includes loading the production bundle and mounting 3,456 interactive cells. Randomized runs use the same cross-language seeded sequence at 24% density, producing a fresh but identical workload for every renderer. Results are machine-specific. Download raw samples and environment metadata.