Oct 14, 2025
Introducing Walltime Profiling Across Languages

Walltime measurements now come with full profiling support, giving you detailed
flamegraphs to understand where your real-world performance bottlenecks are
coming from. Using perf under the hood, you can now profile not just CPU-bound
code but also I/O, network operations, and other system-level interactions.
This profiling support is now available by default for Rust, C/C++, Python, Go, and Node.js when using the Walltime instrument.
Why This Matters?
Until now, the Walltime instrument gave you the total execution time, essential for understanding real-world performance but finding the specific bottlenecks required additional tools. Now, you get both the measurement and the insights in one place.
Whether you're optimizing database queries, network requests, or file I/O, you can see exactly which functions are consuming time and make targeted improvements.
How It Works?
Walltime profiling uses perf to capture stack traces during benchmark
execution, building detailed flamegraphs that show:
- Function-level breakdowns
- Differential flamegraphs
- Origin identification (User, Library, System)
Learn more about profiling in our documentation.
No configuration changes needed—if you're already using Walltime, profiling data will automatically appear in your benchmark results.
For the best results, we recommend using the Walltime instrument on CodSpeed Macro Runners, bare metal instances optimized for performance measurement, making sure the profiles will be consistent across CI runs.
jobs:
benchmarks:
name: Run benchmarks
runs-on: codspeed-macro
steps:
- uses: actions/checkout@v4
# ...
- name: Run benchmarks
uses: CodSpeedHQ/action@v4
with:
mode: walltime
run: "<your benchmark command>"
Learn more about the Walltime instrument and explore how profiling can help you optimize real-world performance!
