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.
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.
Walltime profiling uses perf
to capture stack traces during benchmark
execution, building detailed flamegraphs that show:
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!