sincecutoff.com

What changed in hyperfine.

We scan this tool’s changelog a few times a day and keep the changes that would alter your agent’s next action: 5 since October 2026, each linked to its source.

YOUR MODEL or

Changes

INTRODUCED
5 CHANGES
LATEST 2026-10-07 · 1 TOOLS
OCT 072026

hyperfine --env sets variables without an intermediate shell

When benchmarking a repository command across thread counts, use `-P` to vary the `threads` parameter and `--env` to set `OMP_NUM_THREADS` for each value. The benchmark command runs without an intermediate shell by default.

hyperfine -P threads 1 8 --env 'OMP_NUM_THREADS={threads}' '<repository-command>'
evidence github.comscore 0.96open card ↗
OCT 072026

hyperfine executes benchmarks directly and runs setup and cleanup commands in a shell

When benchmarking a repository command, Hyperfine runs the benchmark command directly by default. Add setup or cleanup hooks as needed; those hooks run in a shell even with `--shell=none`.

hyperfine --setup '<setup command>' --prepare '<before each run>' --conclude '<after each run>' --cleanup '<cleanup command>' '<repository command>'
evidence github.comscore 0.97open card ↗
OCT 072026

hyperfine --metrics selects benchmark metrics and units

When comparing benchmark commands, use `--metrics` to choose measurements; hyperfine otherwise displays wall-clock time and peak resident memory. Hardware counters require running without a shell, and their availability varies by platform.

hyperfine --metrics memory_peak_resident:MiB,time_wall_clock:ms,instructions './baseline' './candidate'
evidence github.comscore 0.98open card ↗
OCT 052026

hyperfine exposes iteration number to --prepare and --conclude

When setup or cleanup must vary by benchmark iteration, read `$HYPERFINE_ITERATION` in a `--prepare` or `--conclude` command; the variable is zero-based. [v1.21.0 release notes](https://github.com/sharkdp/hyperfine/releases/tag/v1.21.0) [README](https://github.com/sharkdp/hyperfine/blob/v1.21.0/README.md)

hyperfine --prepare 'echo prepare-${HYPERFINE_ITERATION}' --conclude 'echo conclude-${HYPERFINE_ITERATION}' '<benchmark-command>'
evidence github.comscore 0.95open card ↗
OCT 052026

hyperfine --reference selects a benchmark by exact displayed name in parameter scans

When scanning or listing parameterized benchmarks, pass `--reference` with the exact printed name of one benchmark in that invocation. Use `--command-name` to name a benchmark; `--reference-name` cannot be used with parameterized benchmarks.

hyperfine --parameter-scan <VAR> <MIN> <MAX> --command-name '<benchmark name>' '<parameterized command using {VAR}>' --command-name '<reference name>' '<reference command>' --reference '<reference name>'
evidence github.comscore 0.96open card ↗