[pull] master from reactive:master#83
Merged
pull[bot] merged 5 commits intoerickirt:masterfrom Mar 21, 2026
Merged
Conversation
Drop react-window in favor of plain keyed lists with a configurable renderLimit that caps DOM rendering while keeping all data in the store. This decouples store size from DOM pressure and lets React reconcile by key instead of index. Also: - Rename scenarios for clarity (update-entity, update-user, etc.) - Increase default mountCount to 1000 for update/ref-stability scenarios - Make React Compiler the default build (opt-out with REACT_COMPILER=false) Made-with: Cursor
Extract shared helpers (runRound, recordResult, warmupCount) to eliminate three copies of the lib-iteration loop. Consolidate three parallel result maps into a single Map<string, ScenarioSamples>. Derive BaseScenario from Scenario via Omit so new fields flow through automatically, and replace the 12-line manual property mapping with destructure + spread. Simplify react-commit eligibility from a 10-action list to !scenario.resultMetric. Remove dead startup code. Skip data-client-only scenarios when benchmarking all frameworks. Update README with measured results table. Made-with: Cursor
Reduce benchmark variance and improve result reliability: - IQR outlier trimming in stats (single GC spikes no longer widen CI) - Force V8 GC via CDP between scenarios and after pre-mount - Shuffle scenario order within each library to eliminate ordering bias - Bump minMeasurement (small: 3→5, large: 2→3) for more reliable convergence - Increase large maxMeasurement in CI (4→6) for more convergence headroom Made-with: Cursor
gh-pages-bench has no website/ directory — it only exists for GitHub Pages benchmark rendering. The ignoreCommand was erroring out on these branches, causing Vercel to attempt (and fail) preview deployments. Made-with: Cursor
* demo(benchmark-react): add multi-view entity update scenario
Add `update-entity-multi-view` benchmark where the same issue entity
is displayed across three structurally different component trees (list
row, detail panel, pinned card strip). A single entity update must
propagate to all three views, exercising normalized cache cross-query
propagation vs. multi-query invalidation + refetch.
Made-with: Cursor
* demo(benchmark-react): fix post-mount GC inflating data-client times
Remove forced HeapProfiler.collectGarbage after pre-mount. The full GC
promoted all recently-allocated entities into V8's old generation,
causing write-barrier overhead during the timed action that
disproportionately penalized data-client's CPU-bound optimistic updates
(~1.8x inflation) while leaving network-bound libraries unaffected.
Also re-measure all scenarios and reorganize the README summary table
into Navigation / Mutations / Scaling categories.
Made-with: Cursor
* demo(benchmark-react): fix initMultiView double-setComplete race
measureMount's MutationObserver called setComplete() (setting
data-bench-complete) as soon as list items appeared, before the
detail panel and pinned card views were ready. The runner could
see this premature signal, proceed to the timed update phase, and
then receive a stale second setComplete() — corrupting the
measurement.
Refactor measureMount to return a Promise and accept
{ signalComplete: false } so initMultiView can suppress the
early completion signal and call setComplete() once after all
three views are ready.
Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )