Skip to content

feat(codspeed): collect Rust toolchain environment at build time#171

Merged
GuillaumeLagrange merged 1 commit intomainfrom
cod-2415-implement-toolchain-harvesting-for-rust
Apr 1, 2026
Merged

feat(codspeed): collect Rust toolchain environment at build time#171
GuillaumeLagrange merged 1 commit intomainfrom
cod-2415-implement-toolchain-harvesting-for-rust

Conversation

@GuillaumeLagrange
Copy link
Copy Markdown
Contributor

Capture rustc and cargo version information during compilation via build.rs and register it through the instrument-hooks environment API at runtime. This enables tracking which toolchain was used to compile benchmarks.

  • Update instrument-hooks submodule to get set_environment/write_environment API
  • Regenerate FFI bindings for new environment functions
  • Add set_environment/write_environment wrappers to InstrumentHooks
  • Collect rustc (version, host, release, LLVM version) and cargo version at build time via env vars, register them during InstrumentHooks init
  • Always initialize InstrumentHooks (even in Valgrind mode) for env collection

Generated with AI Agent (Claude Code)

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq bot commented Mar 27, 2026

Merging this PR will degrade performance by 28.08%

⚡ 25 improved benchmarks
❌ 18 regressed benchmarks
✅ 532 untouched benchmarks

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
WallTime iter_with_setup 44 ns 40 ns +10%
WallTime iter_batched_ref_large_input 44 ns 48 ns -8.33%
WallTime from_elem_decimal[1024] 84 ns 81 ns +3.7%
WallTime iter_batched_per_iteration 44 ns 40 ns +10%
WallTime slice_into_vec_with_bytes 94 ns 56 ns +67.86%
WallTime graph_coloring[4] 962 ns 1,073 ns -10.34%
WallTime generate_combinations[9] 5.2 µs 7.2 µs -28.08%
WallTime string_copy_with_bytes_counter 56 ns 59 ns -5.08%
WallTime generate_combinations[5] 1.5 µs 1.2 µs +26.28%
WallTime fib_in_thread_bench[32] 17.8 ms 16.3 ms +9.28%
WallTime fib_in_thread_bench_local[30] 7 ms 6.5 ms +8.93%
WallTime fib_in_thread[30] 7 ms 6.5 ms +8.93%
WallTime bench_array2[42] 51 ns 47 ns +8.51%
WallTime fibo_10 2 ns 1 ns ×2
WallTime bench_array2[10] 29 ns 9 ns ×3.2
WallTime fib_in_thread_bench[31] 11.1 ms 10.2 ms +8.96%
WallTime fib_in_thread_bench_local[31] 11.1 ms 10.2 ms +8.95%
WallTime fib_in_thread_bench_local[32] 17.8 ms 16.3 ms +9.23%
WallTime fib_in_thread[32] 17.8 ms 16.3 ms +9.32%
WallTime fib_in_thread[31] 11.2 ms 10.2 ms +9.32%
... ... ... ... ... ...

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.


Comparing cod-2415-implement-toolchain-harvesting-for-rust (8637676) with main (dccf5f4)

Open in CodSpeed

@GuillaumeLagrange GuillaumeLagrange force-pushed the cod-2415-implement-toolchain-harvesting-for-rust branch from 1e71589 to 558fd82 Compare April 1, 2026 07:02
Capture rustc and cargo version information during compilation via
build.rs and register it through the instrument-hooks environment API
at runtime. This enables tracking which toolchain was used to compile
benchmarks.

- Update instrument-hooks submodule to get set_environment/write_environment API
- Regenerate FFI bindings for new environment functions
- Add set_environment/write_environment wrappers to InstrumentHooks
- Collect rustc (version, host, release, LLVM version) and cargo version
  at build time via env vars, register them during InstrumentHooks init
- Always initialize InstrumentHooks (even in Valgrind mode) for env collection

Generated with AI Agent (Claude Code)
@GuillaumeLagrange GuillaumeLagrange force-pushed the cod-2415-implement-toolchain-harvesting-for-rust branch from 558fd82 to 8637676 Compare April 1, 2026 07:02
@GuillaumeLagrange GuillaumeLagrange merged commit 8637676 into main Apr 1, 2026
39 of 40 checks passed
@GuillaumeLagrange GuillaumeLagrange deleted the cod-2415-implement-toolchain-harvesting-for-rust branch April 1, 2026 07:53
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