Open metachris opened 2 weeks ago
Trying to integrate flamegraph generation for the benchmarks (using flamegraph-rs and pprof-rs):
This setup uses the pprof-rs Flamegraph-Profiler for Criterion. Note: Custom profilers are only executed when passing a --profile-time argument (see also the relevant Criterion docs).
Flamegraphs can be generated for benchmarks with this command:
$ make bench-flamegraphs
Curiously, trying to generate flamegraphs for the SSZ encoding benchmark causes a segfault:
$ cargo bench --bench bench_flamegraphs -- --profile-time 3 [...] Benchmarking MEV-Boost SubmitBlock serialization/SSZ encoding: Profiling for 3.0000 serror: bench failed, to rerun pass `--bench bench_flamegraphs` Caused by: process didn't exit successfully: `/Users/metachris/Projects/2024/rbuilder-private/target/release/deps/bench_flamegraphs-9f5a78747b3c4349 --profile-time 3 --bench` (signal: 5, SIGTRAP: trace/breakpoint trap) That's why the flamegraph benchmarks are separated into bench_flamegraphs for now.
It would be amazing to have meaningful flamegraphs.
make lint
make test
7688350
Report: https://flashbots-rbuilder-ci-stats.s3.us-east-2.amazonaws.com/benchmark/7688350-27a8867/report/index.html
7688350e20a7c475e1fbc9134ab757a1b7b3faf3
27a8867ad82b64230ce21dc6e0866c3599f10fbd
None
π Summary
Trying to integrate flamegraph generation for the benchmarks (using flamegraph-rs and pprof-rs):
This setup uses the pprof-rs Flamegraph-Profiler for Criterion. Note: Custom profilers are only executed when passing a --profile-time argument (see also the relevant Criterion docs).
Flamegraphs can be generated for benchmarks with this command:
Curiously, trying to generate flamegraphs for the SSZ encoding benchmark causes a segfault:
π‘ Motivation and Context
It would be amazing to have meaningful flamegraphs.
β I have completed the following steps:
make lint
make test