Features
- Add support for minutes and hours in
--time-unit, as well as short and plural aliases such asms,seconds, andmin, see [#960] (@sharkdp) - Expose
$HYPERFINE_ITERATIONto--prepareand--concludecommands, see [#781] and [#807] (@willcl-ark) - Show elapsed time during the initial benchmark run, see [#416] and [#581] (@devonhollowood)
- Add colors to
--helpoutput, see [#841] (@starsep)
Changes
- With
--parameter-scanor--parameter-list,--referencenow selects an existing benchmark by its full displayed name instead of running a separate reference command. The name must match exactly one benchmark; use--command-nameinstead of--reference-namein this mode, see [#847] and [#979] (@sharkdp) - Format times in CSV exports with six decimal places, see [#966] and [#972] (@sharkdp)
- Update dependencies and raise the minimum supported Rust version to 1.97, see [#934] (@sharkdp)
Bugfixes
- Make Markdown, AsciiDoc, and Org-mode exports compare against the specified reference, and label faster and slower results in command-sorted comparisons with
--reference, see [#811] and [#979] (@sharkdp) - Reject zero values for
--runs,--min-runs, and--max-runsinstead of allowing invalid run counts, see [#923] (@VXNCXNX, @sharkdp) - Reject negative parameter-scan steps before expanding ranges, avoiding hangs and excessive memory use, see [#951] (@Likio3000)
- Preserve existing export files when command options are invalid, see [#950] (@Likio3000)
- Truncate export files when rewriting results to avoid leaving trailing bytes, see [#970] (@sharkdp)
- Preserve backticks in command names in Markdown exports, see [#947] (@Likio3000)
- Handle broken output pipes gracefully instead of panicking, see [#932] (@Mathjk)
- Collect peak memory usage separately for each command on Unix, so commands no longer inherit the peak memory usage of earlier commands, see [#965] (@sharkdp)
- Preserve 100-nanosecond precision in Windows CPU times, see [#964] (@sharkdp)
- Python scripts: Correct the interpretation of Welch's t-test results, see [#943] (@sharkdp)
Other
- Build binaries for Windows ARM64 and Linux ARM64 musl, see [#922] and [#924] (@meop)
- Refactor measurement, statistics, and formatting code to use typed quantities, see [#954], [#958], [#961], [#967], [#969], [#971], and [#976] (@sharkdp)
- Improve documentation and examples, including comparisons across Git branches, iteration variables, reference commands, and selective failure handling, see [#899], [#900], [#929], and [#940] (@xfocus3, @ded-furby, @Likio3000, @sharkdp)