Benchmark

Runtime characterization, not a race. Three kinds of numbers appear on this page and each is labelled: results stored from local runs, results from synthetic workloads, and readings taken in your browser right now.

Core microbenchmarks do not support a universal performance-superiority claim. In several measured scenarios, the engine introduced orchestration overhead. Performance is therefore treated as systems characterization.

From the paper’s evaluation, 02-paper/main_author.tex

React 18 end-to-end

React 18.3.1 with the real adapter: three transitions, each ending in the requested state with one observed React re-render. Two long-task entries were reported per sample, so these are treated as characterization only.

Measured locally, stored result
Target experienceSwitch latencyResource waitCommit to paintCLSDropped framesLong tasks
ar-EG::luxury::smooth23.9 ms1.1 ms5.2 ms002
en-US::light::instant34.0 ms0.7 ms13.6 ms002
ar-EG::luxury::smooth27.4 ms0.3 ms13.9 ms002

Three samples in one local Chromium-based browser. Recorded with the earlier adapter revision, which polled the core every 16 ms. The adapter now subscribes to commits, and these samples have not been re-measured. Source: 04-evidence/phase-92-runtime-validation/phase-92-runtime-validation.json

Next.js client runtime

Next.js 16.2.0 App Router with React 19.2.0, production server. After hydration, three transitions ran through the adapter and the DOM converged to each requested state.

Measured locally, stored result
Target experienceRequest to DOM convergence
en-US::light::instant15.8 ms
ar-EG::luxury::smooth18.6 ms
en-US::light::instant13.8 ms

Recorded with the earlier adapter revision, which polled the core every 16 ms. The adapter now subscribes to commits, and these samples have not been re-measured. Source: 04-evidence/phase-92-runtime-validation/phase-92-runtime-validation.json. Server-side personalization is covered on the Personalized SSR page.

Synthetic and stress workloads

These describe behaviour on generated workloads. They characterize the tested dependency model and say nothing about speed in a real product.

Synthetic workload
ExperimentWorkloadOutcome
Locality10,000-node DAG, 6 required nodesThe 6-node closure was prepared instead of all 10,000 nodes: 99.94% less than full invalidation.
Heterogeneous consequences144 ordered transitions, then 5,000 random0 semantic mismatches against the manual baseline.
Rapid requests101 requests in headless Chromium1 committed, 100 classified stale; the final state matched the final request.

Source: 02-paper/main_author.tex. Ablation and baseline results are on the Evidence page.

Take your own readings

Cold, cached, preloaded, RTL and rapid scenarios, run once each against the real engine on this device. “Cold” means cold for the engine’s cache; your browser may already hold the files.

Measured in this browser, one run each
ScenarioWhat is timedsetExperience()Observed
ColdFirst transition to an experience whose resources have never loaded—Not run yet
CachedThe same transition again, resources already in the engine’s cache—Not run yet
Preloadedpreload() called first, then the transition—Not run yet
RTLCulture only: en-US to ar-EG, direction ltr to rtl—Not run yet
Rapid5 requests without waiting, until all have settled—Not run yet

These readings cover the engine call only: resolution, delta, closure, resource loading and commit. They exclude React rendering and painting, depend on your device and network cache, and are not comparable with the stored results above.