Skip to content

fix(core): stop excluding the node executable from callgrind - #121

Draft
not-matthias wants to merge 1 commit into
mainfrom
cod-4155-remove-obj-skip-for-codspeed-node
Draft

not-matthias wants to merge 1 commit into
mainfrom
cod-4155-remove-obj-skip-for-codspeed-node

Conversation

@not-matthias

@not-matthias not-matthias commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

Fixes COD-4155.

setupCore called callgrindAddObjSkip(process.execPath), which made callgrind skip the whole node binary. Node runtime cost was then missing from simulation profiles. Remove the call so the node executable is instrumented.

Companion runner change: CodSpeedHQ/codspeed#617

@codspeed

codspeed Bot commented Nov 6, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 14.17%

4 warnings, 1 note

⚠️ Walltime results may be unreliable

Some benchmarks used the Walltime instrument outside CodSpeed Macro Runners, which can make the results inconsistent.

Learn more about Macro Runners

See affected benchmarks

⚠️ 14 benchmarks are dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

⚠️ 8 benchmarks with a significant change ran on different hardware

Their base and head results were measured on machines with a different CPU, core count or memory, so the changes might not come from the code. Run base and head on the same runner type.

Learn more about Macro Runners

See affected benchmarks

⚠️ 14 benchmarks with a significant change ran in a different software environment

Their base and head results were measured with a different OS or toolchain, such as compiler, runtime or library versions, so the changes might come from this difference rather than from the code. Open an affected benchmark to see what changed.

See affected benchmarks

ℹ️ 16 benchmarks have no flamegraph

The flamegraph wasn't generated: most of the time was spent in runtime internals, which would leave nothing useful to analyze.

See affected benchmarks

⚡ 5 improved benchmarks
❌ 9 regressed benchmarks
✅ 256 untouched benchmarks
⏩ 56 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
❌ CPU Simulation recursive fibo 10 333.8 µs 689.7 µs -51.6%
❌ CPU Simulation wait 500ms 29.8 ms 54.2 ms -45.09%
❌ CPU Simulation wait 1sec 60 ms 98.8 ms -39.29%
❌ CPU Simulation test_recursive_fibo_10 334.9 µs 510.5 µs -34.39%
❌ Memory wait 1sec 22.7 KB 28.2 KB -19.53%
❌ Walltime switch 1 72 ns 84 ns -14.29%
❌ Walltime switch 1 72 ns 84 ns -14.29%
❌ Walltime fibo darwin 9.1 ms 10.6 ms -14.12%
❌ Walltime short body 1.6 µs 1.8 µs -10.67%
⚡ CPU Simulation wait 500ms 38.5 ms 29.4 ms +30.77%
⚡ CPU Simulation switch 1 652.4 µs 527.9 µs +23.6%
⚡ CPU Simulation wait 1sec 72.9 ms 60.4 ms +20.65%
⚡ Walltime switch 2 96 ns 84 ns +14.29%
⚡ Walltime test_iterative_fibo_10 132 ns 120 ns +10%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing cod-4155-remove-obj-skip-for-codspeed-node (ba26caa) with main (4ab6d84)

Open in CodSpeed

Footnotes

  1. 56 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. ↩

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.

1 participant