perf: use indexed names for faster concatenation - #15222
LingyuCoder wants to merge 12 commits into
Conversation
📦 Binary Size-limit
⏳ The base commit triggered a linux binding build, but its binary size data has not been generated yet, so the size comparison is skipped. Please re-run this workflow once the ecosystem-benchmark data for that commit is published. Warning Reference only — not the real baseline. The base commit's data isn't ready yet, so this compares against the nearest earlier commit that has data ( ❌ Size increased by 248.00KB from 68.20MB to 68.44MB (⬆️0.36%) |
Merging this PR will improve performance by 18.16%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | rust@concatenate_module_code_generation |
33.7 ms | 24.6 ms | +36.68% |
| ⚡ | Simulation | bundle@misc-production-sourcemap |
3.4 s | 3.3 s | +2.15% |
Tip
Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.
Comparing seal/concat-rebind (8431b70) with seal/concat-local-ident (d84ab09)
Footnotes
-
47 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
Rsdoctor Bundle Diff Analysis
Found 5 projects in monorepo, 5 projects with changes. 📊 Quick Summary
📋 Detailed Reports (Click to expand)📁 popular-libsPath:
📦 Download Diff Report: popular-libs Bundle Diff 📁 ui-componentsPath:
📦 Download Diff Report: ui-components Bundle Diff 📁 react-1kPath:
📁 react-5kPath:
📦 Download Diff Report: react-5k Bundle Diff 📁 react-10kPath:
📦 Download Diff Report: react-10k Bundle Diff 🤖 AI Degradation Analysis (Click to expand)📁 popular-libs📊 Size ChangesNo significant regressions detected 🎉. 🔍 Root Cause Analysis
|
| Asset / Chunk | Baseline | Current | Δ Size | Δ % | Initial? |
|---|---|---|---|---|---|
| No significant regressions detected 🎉 |
🔍 Root Cause Analysis
- Total bundle size increased by only 543 bytes (5,138,933 → 5,139,476).
- Minor fluctuations observed in internal utility modules (e.g.,
element-plus/es/utils/vue/vnode.mjs+76%, but absolute size <1 KB). - No new dependencies added; changes stem from existing library internal updates (
antd,@arco-design,element-plus).
⚠️ Risk Assessment
Overall severity: Low
- The initial chunk increased by 0.01% (+543 bytes), which is negligible for load time impact.
💡 Optimization Suggestions
- No action required: The delta is within noise tolerance for CI builds.
- Monitor trends: Continue watching
element-plusandantdupdates in future diffs to ensure no cumulative bloat. - Verify build config: Ensure production builds are consistently using the same minification settings to prevent artificial drift.
Analysis by qwen3.5-plus
📁 react-5k
📊 Size Changes
No significant regressions detected 🎉.
🔍 Root Cause Analysis
- No modules or packages were added, removed, or changed.
- Bundle composition remains identical to baseline (Total JS: 2,793,626 bytes).
⚠️ Risk Assessment
Overall severity: Low
- Zero byte delta across all asset types ensures no performance impact from this PR.
💡 Optimization Suggestions
- No action required based on bundle diff.
- Continue monitoring total bundle size (currently 2.7MB JS) in future audits to ensure long-term health.
Analysis by qwen3.5-plus
📁 react-10k
📊 Size Changes
No significant regressions detected 🎉. All bundle metrics remain identical to baseline.
🔍 Root Cause Analysis
- No modules, packages, or assets were added, removed, or modified.
⚠️ Risk Assessment
Overall severity: Low
- Zero delta in total size (5,861,069 bytes) and initial JS size (746,165 bytes) ensures no impact on load performance.
💡 Optimization Suggestions
- No action required based on this diff.
- Maintain current code-splitting strategy to keep initial chunk under 1 MB.
- Periodically audit dependencies to prevent future bloat creep.
Analysis by qwen3.5-plus
Generated by Rsdoctor GitHub Action
Summary
This is an experimental follow-up to #14852 for measuring the naming phase with CodSpeed.
__m{module_index}_{binding_index}names for conflicting module-scope bindings when faster module concatenation is enabled.Related links
Validation
pnpm run build:binding:devpnpm --filter @rspack/tests test FasterModuleConcatenation.test.js(84 passed)rename-10168casesChecklist