perf(router-core): use fast-property records for SSR - #8312
perf(router-core): use fast-property records for SSR#8312schiller-manuel wants to merge 1 commit into
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 8 remain after this review. 📝 WalkthroughWalkthroughThe PR changes ChangesNull-prototype records
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: Merge Risk: ⚪ Minimal · up to SSR records now use the optimized allocation strategy while client behavior remains unchanged. The added coverage verifies null-prototype and special-key behavior, so the change is ready to merge. 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Description checkExplanation The description clearly explains the implementation, benchmarks, and performance results, but the required template sections remain incomplete. The Changes section still contains only the placeholder, and all checklist and release-impact items are unchecked despite a changeset being present.
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
View your CI Pipeline Execution ↗ for commit 0ef87ee
☁️ Nx Cloud last updated this comment at |
Bundle Size BenchmarksThis pull request does not affect bundle size in any measured scenario. |
🚀 Changeset Version Preview1 package(s) bumped directly, 22 bumped as dependents. 🟩 Patch bumps
|
Select Object.setPrototypeOf({}, null) in createNull only for the existing compile-time server branch. Keep client dictionary allocation and all direct allocation sites unchanged. Add null-prototype/special-key coverage for both branches and an opt-in 24-case small/large/dynamic record benchmark.
Against f38d8d0ede, six fresh paired SSR repetitions reduced CPU by 7.41% for shared params (95% CI -12.28% to -2.27%), 14.25% for unique params (-17.52% to -10.85%), and 9.24% for param updaters (-12.73% to -5.60%). Wall intervals also show speedups. Three unique-param allocation profiles averaged 1222705899 to 1125029176 bytes over 300 batches (-8.0%).
All 18 client bundle fixtures are byte-identical in raw/gzip/initial-gzip/Brotli. Rejected blanket client expansion because canonical CPU regressed about 21.5%; removed the separate parameter-target hunk after attribution found no demonstrated incremental speedup. Fast properties are not a universal dictionary optimization.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
bab6487 to
0ef87ee
Compare
Select Object.setPrototypeOf({}, null) in createNull only for the existing compile-time server branch. Keep client dictionary allocation and all direct allocation sites unchanged. Add null-prototype/special-key coverage for both branches and an opt-in 24-case small/large/dynamic record benchmark.
Against f38d8d0ede, six fresh paired SSR repetitions reduced CPU by 7.41% for shared params (95% CI -12.28% to -2.27%), 14.25% for unique params (-17.52% to -10.85%), and 9.24% for param updaters (-12.73% to -5.60%). Wall intervals also show speedups. Three unique-param allocation profiles averaged 1222705899 to 1125029176 bytes over 300 batches (-8.0%).
All 18 client bundle fixtures are byte-identical in raw/gzip/initial-gzip/Brotli. Rejected blanket client expansion because canonical CPU regressed about 21.5%; removed the separate parameter-target hunk after attribution found no demonstrated incremental speedup. Fast properties are not a universal dictionary optimization.
🎯 Changes
✅ Checklist
🚀 Release Impact
Summary by CodeRabbit
Performance
Security and Reliability
Tests