Unified Benchmark Matrix

One place to look at every architecture on the same host and ladder — IFR styles, VDOM vs Vapor, and React vs Vue — without mixing metric scales.

How to read storms: Select = point update (selection / a few classes per tick). Update = batch update (many rows touched each pass). Don’t compare those two curves as if they were the same workload.

Unified benchmark matrix
Open in new window

What this page is

The three older campaigns answered different questions:

campaignquestiondoc
IFR stylesfirst-frame cost & FCPIFR Benchmarks
Framework (VDOM vs Vapor)instrumented BG/e2e + interactiveFramework bench

They shared 1k→30k labels but not a metric scale. This report puts every cell in one schema and leads with decision-first conclusions (takeaway → so what → verify).

Sibling pages keep only what this matrix does not cover:

pagekeeps
Framework benchinteractive apps (React as reference), instrumented BG/e2e, ops bytes, bundle/heap
IFR Benchmarksstrategy ladder, examples gzip/TTI, native

How to read it

  1. Conclusions — digestible product guidance; numbers are for checking.
  2. Storm table / charts — point (select) vs batch (update) latency.
  3. FCP table / charts — content-probe first-frame ladder (separate instrument!).
  4. Optimization-flag matrix — every legal combination in V4 notation render [+b[:d|c|e]] [+ifr[:c|e]] (baseline = per-node; +b = block templates; +b:e = engine staging, N/A on web and omitted; +ifr:e = engine-painted first frame only), measured for create/update with per-flag marginal factor deltas and a full flag legend on the page. Formalization: GRAPH-ENG-REPORT.md §1.3c.

Environment rules

  • lynx-web — primary product scale (this report).
  • bare-dom / node-jitless — different instruments; never ratio across them.

Reproduce

pnpm --filter vue-lynx-benchmark bench:unified
pnpm --filter vue-lynx-benchmark bench:synthesize
pnpm --filter vue-lynx-benchmark bench:report

Design notes: packages/benchmark/UNIFIED.md · raw analysis: ANALYSIS.md.