Skip to content

test: split compilation stage benchmarks#13969

Merged
hardfist merged 1 commit into
mainfrom
codex/split-stage-benchmarks
May 9, 2026
Merged

test: split compilation stage benchmarks#13969
hardfist merged 1 commit into
mainfrom
codex/split-stage-benchmarks

Conversation

@hardfist

@hardfist hardfist commented May 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Split compilation stage benchmark registration into per-stage entrypoint files under xtask/benchmark/stages.
  • Keep the heavy benchmark implementations in compilation_stages.rs while shortening CodSpeed callgrind profile-part paths for KCachegrind readability.

Related links

N/A

Checklist

  • Tests updated (or not required).
  • Documentation updated (or not required).

@codspeed-hq

codspeed-hq Bot commented May 9, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 19 untouched benchmarks
🆕 15 new benchmarks
⏩ 15 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
🆕 Simulation rust@create_full_hash N/A 6.1 ms N/A
🆕 Simulation rust@create_module_assets N/A 691.5 µs N/A
🆕 Simulation rust@real_content_hash N/A 33.6 ms N/A
🆕 Simulation rust@runtime_requirements N/A 34.9 ms N/A
🆕 Simulation rust@create_module_hashes N/A 15.9 ms N/A
🆕 Simulation rust@split_chunks N/A 4.6 ms N/A
🆕 Simulation rust@create_module_ids N/A 8.9 ms N/A
🆕 Simulation rust@flag_dependency_exports N/A 11.3 ms N/A
🆕 Simulation rust@flag_dependency_usage N/A 25.2 ms N/A
🆕 Simulation rust@mangle_exports N/A 8.5 ms N/A
🆕 Simulation rust@concatenate_module_code_generation N/A 99.2 ms N/A
🆕 Simulation rust@create_chunk_hashes N/A 4 ms N/A
🆕 Simulation rust@create_chunk_assets N/A 3.1 ms N/A
🆕 Simulation rust@create_chunk_ids N/A 8.5 ms N/A
🆕 Simulation rust@create_concatenate_module N/A 34.3 ms N/A

Comparing codex/split-stage-benchmarks (ecc91cc) with main (3d23891)

Open in CodSpeed

Footnotes

  1. 15 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.

@github-actions

github-actions Bot commented May 9, 2026

Copy link
Copy Markdown
Contributor

📦 Binary Size-limit

Comparing ecc91cc to chore: use mimalloc for codspeed benchmark allocator (#13966) by hardfist

🙈 Size remains the same at 61.92MB

@github-actions

github-actions Bot commented May 9, 2026

Copy link
Copy Markdown
Contributor

Rsdoctor Bundle Diff Analysis

Found 6 projects in monorepo, 0 projects with changes.

📊 Quick Summary
Project Total Size Change
popular-libs 1.7 MB 0
react-10k 5.7 MB 0
react-1k 826.3 KB 0
react-5k 2.7 MB 0
rome 1.6 MB 0
ui-components 4.8 MB 0

Generated by Rsdoctor GitHub Action

@hardfist hardfist marked this pull request as ready for review May 9, 2026 07:34
Copilot AI review requested due to automatic review settings May 9, 2026 07:34
@hardfist hardfist merged commit 34c3ecd into main May 9, 2026
40 checks passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR restructures the benchmark registration for compilation stages by moving each stage’s Criterion registration into its own short-path entrypoint module under xtask/benchmark/stages, while keeping the heavy benchmark implementations in xtask/benchmark/benches/groups/compilation_stages.rs. This primarily targets shorter file!() paths embedded in CodSpeed callgrind profile-part names for improved KCachegrind readability.

Changes:

  • Added per-stage benchmark entrypoint modules under xtask/benchmark/stages/* and a shared stages::run helper to set up compiler context + Tokio runtime.
  • Refactored compilation_stages.rs to expose per-stage benchmark functions (pub(crate)) and removed the monolithic compilation_stages Criterion group.
  • Updated the main bench registration (benches.rs) to register each stage group individually via the new stages::*::stage entrypoints.

Reviewed changes

Copilot reviewed 18 out of 18 changed files in this pull request and generated no comments.

Show a summary per file
File Description
xtask/benchmark/stages/mod.rs Adds shared run helper (compiler context + Tokio runtime) and declares per-stage modules.
xtask/benchmark/stages/flag_dependency_exports.rs Registers the flag-dependency-exports stage as its own Criterion group.
xtask/benchmark/stages/flag_dependency_usage.rs Registers the flag-dependency-usage stage as its own Criterion group.
xtask/benchmark/stages/create_module_ids.rs Registers the create-module-ids stage as its own Criterion group.
xtask/benchmark/stages/split_chunks.rs Registers the split-chunks stage as its own Criterion group.
xtask/benchmark/stages/create_chunk_ids.rs Registers the create-chunk-ids stage as its own Criterion group.
xtask/benchmark/stages/mangle_exports.rs Registers the mangle-exports stage as its own Criterion group.
xtask/benchmark/stages/create_module_hashes.rs Registers the create-module-hashes stage as its own Criterion group.
xtask/benchmark/stages/runtime_requirements.rs Registers the runtime-requirements stage as its own Criterion group.
xtask/benchmark/stages/create_chunk_hashes.rs Registers the create-chunk-hashes stage as its own Criterion group.
xtask/benchmark/stages/create_full_hash.rs Registers the create-full-hash stage as its own Criterion group.
xtask/benchmark/stages/create_module_assets.rs Registers the create-module-assets stage as its own Criterion group.
xtask/benchmark/stages/create_chunk_assets.rs Registers the create-chunk-assets stage as its own Criterion group.
xtask/benchmark/stages/real_content_hash.rs Registers the real-content-hash stage as its own Criterion group.
xtask/benchmark/stages/create_concatenate_module.rs Registers the create-concatenate-module stage as its own Criterion group.
xtask/benchmark/stages/concatenate_module_code_generation.rs Registers the concatenate-module-code-generation stage as its own Criterion group.
xtask/benchmark/benches/groups/compilation_stages.rs Removes the single “compilation_stages” group wrapper and exposes per-stage benchmark fns for reuse by the new entrypoints.
xtask/benchmark/benches/benches.rs Switches Criterion registration to import stages via a short #[path=...] and registers each stage group explicitly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@hardfist hardfist deleted the codex/split-stage-benchmarks branch May 9, 2026 07:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants