Performance
Reproduce and interpret the benchmark evidence.
Reproduce the evidence
Run benchmarks from a clean repository checkout. Fixture allocation is excluded from the model timing.
npm ci
npm run benchmark
npm run benchmark:memory
npm run benchmark:browserDownload the recorded model results and methodology. The model suite uses one warmup and ten measured runs and records raw samples, median, and p95. Search records three runs and whether limits were reached. The forced-GC experiment observes discarded model roots; it does not prove the absence of mounted browser leaks.
Interpret like-for-like work
Collapsed, expanded, and grouped states perform different work. SSR timings use development React in-process and are not browser render timings. Browser results include automation overhead and search debounce. Wide-object key enumeration is synchronous. Comparisons require the same fixture, expansion state, browser, production mode, and limits. No competitor timing claim follows from these measurements.
Recorded model measurements
Snapshot: 2026-09-07. Apple M3 Max, darwin arm64, Node v24.20.0. These are model operations, not browser frame rates or React render times.
| Fixture | Expanded model | Model rows |
|---|---|---|
| Small object | 0.012 ms | 4 |
| 100,000-property object | 15.328 ms | 11 |
| 500,000-item array | 0.037 ms | 51 |
The wide object pays for synchronous own-key enumeration. The array opens only its first level of ranges. These cases perform different work; dataset size alone is not a speed comparison. Download every raw sample and environment field.