Skip to content

feat: make samply profiler default for all OSes - #472

Merged
GuillaumeLagrange merged 3 commits into
mainfrom
cod-2796-switch-to-samply-profiler-by-default
Jul 27, 2026
Merged

feat: make samply profiler default for all OSes#472
GuillaumeLagrange merged 3 commits into
mainfrom
cod-2796-switch-to-samply-profiler-by-default

Conversation

@GuillaumeLagrange

Copy link
Copy Markdown
Contributor

No description provided.

@greptile-apps

greptile-apps Bot commented Jul 27, 2026

Copy link
Copy Markdown

Greptile Summary

Updates wall-time profiling behavior and test infrastructure:

  • Makes Samply the default wall-time profiler on every operating system while retaining explicit Perf and Samply overrides.
  • Adds an executable-path override for internal Samply re-execution.
  • Builds test-only codspeed and exec-harness binaries through Cargo instead of relying on preinstalled executables.
  • Removes environment-based test gates and the corresponding CI installation step.
  • Updates the bundled Samply submodule and dependency lockfile.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
src/executor/wall_time/executor.rs Changes the default wall-time profiler selection to Samply on every platform.
src/cli/mod.rs Adds an environment override for the executable used to dispatch internal Samply commands.
src/executor/tests.rs Builds real workspace binaries on demand and supplies them to wall-time executor tests.
.github/workflows/ci.yml Removes the redundant exec-harness installation from the main test job.
Cargo.toml Adds Escargot as a development dependency for test-time Cargo builds.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[Wall-time execution requested] --> B{Profiler override}
  B -->|Perf| C[PerfProfiler]
  B -->|Samply| D[SamplyProfiler]
  B -->|None| D
  D --> E[Internal Samply command]
  E --> F{CODSPEED_SELF_EXE set?}
  F -->|Yes| G[Re-execute configured binary]
  F -->|No| H[Re-execute current executable]
Loading

Reviews (3): Last reviewed commit: "feat: make samply profiler default for a..." | Re-trigger Greptile

@codspeed-hq

codspeed-hq Bot commented Jul 27, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

✅ 17 untouched benchmarks


Comparing cod-2796-switch-to-samply-profiler-by-default (c6f4fe8) with main (8018219)

Open in CodSpeed

@GuillaumeLagrange
GuillaumeLagrange removed the request for review from not-matthias July 27, 2026 10:30
Tests no longer require sudo, or at least they dont after the kernel
parameters are set, and the memory executor tests now run in a
reasonable time thanks to the attach on demand, we dont need to gate
anymore.

Also add a way for the test executable to find the actual codspeed
binary in order to have the self exec into samply work properly. It used
to re-exec the test executable, which is not the behavior we want here.
@GuillaumeLagrange
GuillaumeLagrange force-pushed the cod-2796-switch-to-samply-profiler-by-default branch from cd39f10 to c6f4fe8 Compare July 27, 2026 12:21
@GuillaumeLagrange
GuillaumeLagrange merged commit 2b5b079 into main Jul 27, 2026
37 checks passed
@GuillaumeLagrange
GuillaumeLagrange deleted the cod-2796-switch-to-samply-profiler-by-default branch July 27, 2026 14:51
GuillaumeLagrange added a commit that referenced this pull request Jul 27, 2026
* feat(samply-codspeed): bump submodule to forward signal exit code

* chore: fix self-exec failures in tests and ungate executor tests

Tests no longer require sudo, or at least they dont after the kernel
parameters are set, and the memory executor tests now run in a
reasonable time thanks to the attach on demand, we dont need to gate
anymore.

Also add a way for the test executable to find the actual codspeed
binary in order to have the self exec into samply work properly. It used
to re-exec the test executable, which is not the behavior we want here.

* feat: make samply profiler default for all OSes
GuillaumeLagrange added a commit that referenced this pull request Jul 27, 2026
* feat(samply-codspeed): bump submodule to forward signal exit code

* chore: fix self-exec failures in tests and ungate executor tests

Tests no longer require sudo, or at least they dont after the kernel
parameters are set, and the memory executor tests now run in a
reasonable time thanks to the attach on demand, we dont need to gate
anymore.

Also add a way for the test executable to find the actual codspeed
binary in order to have the self exec into samply work properly. It used
to re-exec the test executable, which is not the behavior we want here.

* feat: make samply profiler default for all OSes
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.

2 participants