Optional tools¶
This guide covers prof tools: commands that read bench/<tag>/ and produce extra artifacts such as benchstat summaries or QCacheGrind callgrind files. The same flows are available from prof ui (Tools menu).
Before you begin¶
- You have already collected data into
bench/(Collect profiling data). - For
benchstat, thebenchstatbinary is on yourPATH(Troubleshooting). - For QCacheGrind, the GUI is installed (Troubleshooting).
prof tools benchstat¶
benchstat compares benchmark text results across two tags.
Install helper:
Output path: bench/tools/benchstat/<BenchmarkName>_results.txt
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--base |
string | Yes | n/a | Baseline tag under bench/. |
--current |
string | Yes | n/a | Current tag. |
--bench-name |
string | Yes | n/a | Benchmark name. |
prof tools qcachegrind¶
Generates Callgrind input for QCacheGrind from stored binary profiles.
Output path: bench/tools/qcachegrind/<BenchmarkName>_<profile>.callgrind
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--tag |
string | Yes | n/a | Tag to read from. |
--profiles |
strings | Yes | n/a | Profile IDs; the command uses the first ID you pass. Pass a single profile such as cpu when unsure. |
--bench-name |
string | Yes | n/a | Benchmark name. |
Testing / verify¶
- After
benchstat, openbench/tools/benchstat/<BenchmarkName>_results.txtand confirm it references both tags. - After
qcachegrind, confirm.callgrindfiles exist and open in QCacheGrind.
Next steps¶
- Compare runs for statistical diff of profiles rather than
benchstatalone. - Collect profiling data if
bench/is missing.