chore(bench): skip multi-threaded cases in CodSpeed memory mode#244
Conversation
Rename the two threaded resolver bench cases so they share a common `[multi-threaded]` prefix, allowing a single regex (e.g. `--skip '\[multi-threaded\]'`) to select or exclude them at runtime.
There was a problem hiding this comment.
Pull request overview
This PR standardizes the naming of the multi-threaded Criterion benchmark cases in benches/resolver.rs by adding a shared [multi-threaded] prefix, enabling easy selection/skipping via regex (e.g., when running CodSpeed in modes where multi-threaded throughput isn’t meaningful).
Changes:
- Renamed the
"multi-thread"benchmark case to"[multi-threaded]resolve". - Renamed
"resolve from symlinks multi thread"to"[multi-threaded]resolve from symlinks".
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Merging this PR will improve performance by 3.2%
Performance Changes
Tip Curious why this is faster? Comment Comparing Footnotes
|
CodSpeed memory mode runs Valgrind massif, which conflates allocations across worker threads and cannot produce a meaningful signal for the multi-threaded resolver benches. Gate them on `CODSPEED_RUNNER_MODE` (set by the CodSpeed action) so they only run in the simulation step.
Why
CodSpeed memory mode runs Valgrind massif, which conflates allocations across worker threads and produces noisy, non-actionable deltas for the multi-threaded resolver benches. Skip them in that mode so memory deltas only come from the single-threaded cases.
What
[multi-threaded]prefix (matches the existing[single-threaded]resolve with many extensionsstyle):multi-thread→[multi-threaded]resolveresolve from symlinks multi thread→[multi-threaded]resolve from symlinksCODSPEED_RUNNER_MODEenv var (set by the CodSpeed action). They keep running in the simulation step and are skipped only in memory mode.No workflow change needed — the existing
mode: memoryaction already exportsCODSPEED_RUNNER_MODE=memoryinto the bench process.