replaceEqualDeep optimization#7462
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThis PR optimizes ChangesreplaceEqualDeep optimization and testing
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
View your CI Pipeline Execution ↗ for commit 21dab5b
☁️ Nx Cloud last updated this comment at |
🚀 Changeset Version PreviewNo changeset entries found. Merging this PR will not cause a version bump for any packages. |
Bundle Size Benchmarks
Current gzip tracks all emitted client JS chunks. Initial gzip tracks only the entry/import graph. Trend sparkline is historical current gzip ending with this PR measurement; lower is better. |
There was a problem hiding this comment.
Nx Cloud has identified a possible root cause for your failed CI:
We classified this failure as an environment issue rather than a code change. The failing test (preserves scroll position after a force reload on a visible boundary) lives outside the touched project and failed due to a 5-second polling timeout on a scroll position assertion — a transient condition consistent with a slow CI environment. The replaceEqualDeep optimization is behavior-neutral and no direct link to scroll restoration logic was found.
No code changes were suggested for this issue.
Trigger a rerun:
🎓 Learn more about Self-Healing CI on nx.dev
Merging this PR will not alter performance
Comparing Footnotes
|
replaceEqualDeep Bundle Optimization
Bundle Size
Target scenario baseline:
react-router.minimal: gzip 89179, initial 89039, raw 279330, brotli 77564Target scenario final:
react-router.minimal: gzip 89159, initial 89020, raw 279298, brotli 77583Full benchmark final deltas:
react-router.minimal: gzip -20, initial -19, raw -32, brotli +19react-router.full: gzip -20, initial -21, raw -32, brotli -76solid-router.minimal: gzip -28, initial -29, raw -32, brotli -53solid-router.full: gzip -25, initial -23, raw -32, brotli -43vue-router.minimal: gzip -27, initial -27, raw -32, brotli +4vue-router.full: gzip -30, initial -29, raw -32, brotli -65react-start.minimal: gzip -26, initial -21, raw -32, brotli -78react-start.deferred-hydration: gzip -21, initial -20, raw -32, brotli -156react-start.full: gzip -24, initial -22, raw -32, brotli +19react-start.rsbuild.minimal: gzip -17, initial -17, raw -28, brotli -98react-start.rsbuild.full: gzip -17, initial -17, raw -28, brotli -6solid-start.minimal: gzip -29, initial -31, raw -32, brotli +32solid-start.deferred-hydration: gzip -17, initial -17, raw -32, brotli +45solid-start.full: gzip -23, initial -22, raw -32, brotli -39Perf
Focused bench:
@tanstack/router-core:test:perf -- tests/replace-equal-deep.bench.tsValidation
@tanstack/router-core:test:unit: pass@tanstack/router-core:test:types: pass@tanstack/router-core:test:eslint: pass with existing warningstanstack-router-e2e-react-basic-file-based:test:e2e: 157 passedgit diff --check: passAttribution
Reflect.ownKeys: gzip win but slower on focused bench.isPlainArray: only gzip -1 and worse raw/brotli.Summary by CodeRabbit
Bug Fixes
Tests
Refactor