Commit Graph
103 Commits
Author SHA1 Message Date
David Peter bc3a3f0524 Support hardware counters (instructions, cache misses, ...) (#983)
* Add hardware counters to JSON exports

* Clarify Linux hardware counter setup
2026-10-06 08:59:40 +02:00
David Peter 579b762790 Consistent display name 2026-10-05 21:02:52 +02:00
David Peter eedec07812 Cover JSON exports with integration snapshots 2026-10-05 20:42:13 +02:00
David Peter cb021e64b9 Mark reference commands in JSON exports 2026-10-05 20:27:13 +02:00
David Peter 95118147af Rename peak memory metric to memory_peak_resident 2026-10-05 20:23:55 +02:00
David Peter 0d86e78ede Refine JSON schema and command metadata 2026-10-05 18:11:10 +02:00
David Peter c5d3a81fc5 Include raw commands in JSON exports when names differ 2026-10-05 17:02:34 +02:00
David Peter 1b3ec922fa Export metric summaries and adapt analysis scripts 2026-10-05 16:59:35 +02:00
David Peter 6d0ae4f87c Add benchmark session metadata to JSON exports 2026-10-05 16:27:35 +02:00
David Peter d60eba407d Version the JSON export schema 2026-10-05 16:10:08 +02:00
David Peter 02b0db5c96 Adapt tests to rebased reference handling 2026-10-05 16:03:23 +02:00
David Peter 4cd0e24586 Document JSON measurements and omit unavailable memory metrics 2026-10-05 16:01:30 +02:00
David Peter cf381994d1 Resolve overlap with merged measurement refactors and current master 2026-10-05 16:01:30 +02:00
David Peter 9c2ee56cba Cleanup 2026-10-05 16:00:48 +02:00
David Peter f342e1f5de Make memory units available 2026-10-05 16:00:35 +02:00
David Peter 534d5683ab Yet another API iteration 2026-10-05 16:00:21 +02:00
David Peter 6b4e9eb5c2 Represent memory usage as f64 as well 2026-10-05 16:00:08 +02:00
David Peter 27ad0fb65e Do not use value_in for CSV export 2026-10-05 16:00:08 +02:00
David Peter ebf127338c Further simplification of the API 2026-10-05 16:00:08 +02:00
David Peter 4badeb6312 Quantity API cleanup 2026-10-05 15:59:56 +02:00
David Peter 3494c8abe6 Remove alternative constructors 2026-10-05 15:59:43 +02:00
David Peter f57c4e6d78 Support minutes and hours 2026-10-05 15:59:43 +02:00
David Peter 418e43a652 Implement TimeUnit functions via uom 2026-10-05 15:59:28 +02:00
David Peter be66a6668f Move quantity module 2026-10-05 15:59:11 +02:00
David Peter 641451aea6 Use uom 2026-10-05 15:59:10 +02:00
David Peter 42e75c1737 Unify TimingResult/TimerResult/Measurement 2026-10-05 15:58:56 +02:00
David Peter f9aa299c0f Switch to unit-safe quantities 2026-10-05 15:58:56 +02:00
David Peter d4c6b53e40 Runs => Measurements 2026-10-05 15:57:26 +02:00
David Peter 8ba632c954 More simplifications 2026-10-05 15:57:12 +02:00
David Peter f7e6d7286f Simplify run creation 2026-10-05 15:56:53 +02:00
David Peter c20fcc0bda Real => wall clock 2026-10-05 15:56:53 +02:00
David Peter af4422d212 Remove command_with_unused_parameters field 2026-10-05 15:56:52 +02:00
David Peter ae0035ad56 Use wait4 instead of getrusage 2026-10-05 15:56:37 +02:00
David Peter 50232feb22 Move user and system time 2026-10-05 15:56:36 +02:00
David Peter 14d773998a Introduce new BenchmarkRun struct 2026-10-05 15:56:36 +02:00
David Peter 463a889638 Simplify parameterized reference handling 2026-10-05 15:07:46 +02:00
David Peter f7429e2fb2 Use parameterized benchmarks as references 2026-10-05 14:59:18 +02:00
David Peter 16f53eb8d6 Format CSV measurements through FormatQuantity 2026-10-05 13:41:43 +02:00
David Peter 4aa36c8051 Merge pull request #970 from sharkdp/codex/truncate-export-rewrites
Truncate export files before rewriting results
2026-10-05 12:57:52 +02:00
David Peter 8cf4e010e9 Truncate export files before rewriting results 2026-10-05 12:48:52 +02:00
David Peter b23372c5e2 Store typed Measurements in BenchmarkResult 2026-10-05 12:46:10 +02:00
David Peter 8c40de45f8 Store parameter usage metadata in benchmark results 2026-10-05 12:35:24 +02:00
Eric Soler a760e75f2f Preserve backticks in Markdown command names 2026-10-05 12:01:42 +02:00
David Peter 6f557e0494 Extract typed quantity formatting 2026-10-05 11:46:49 +02:00
David Peter b4fb20f85b Format CSV times with six decimal places 2026-10-05 11:16:20 +02:00
David Peter aa14b8c0d9 Group units, formatting, and statistics under quantity 2026-10-05 10:46:51 +02:00
c0b3834277 Handle broken pipe errors on stdout gracefully (#932)
Replace `println!` calls on the results paths with `writeln!` on
`io::stdout()` and propagate the `io::Error` to `main`, where
`ErrorKind::BrokenPipe` is turned into a quiet `exit(0)`. This matches
the conventional behavior of command-line tools when their output pipe
is closed early (e.g. `hyperfine ... | head -n 0`), and fixes panics in
all run-output paths: the per-benchmark header and results, the speed
comparison summary, and `-`-style exports to stdout. The warnings and
"Note" outputs to stderr are converted the same way.


---------

Co-authored-by: Mathjk <Mathjk@users.noreply.github.com>
Co-authored-by: David Peter <mail@david-peter.de>
2026-10-02 11:18:56 +02:00
David Peter 4d073e08ae Dependency and MSRV update (#934) 2026-10-02 11:05:02 +02:00
David Peter 038f369420 SortOrder field 2024-12-29 14:07:21 +01:00
David Peter 0d2e3a4dd7 Simplify CSV tests 2024-12-29 14:07:21 +01:00