Releases: sharkdp/hyperfine
Releases · sharkdp/hyperfine
v1.18.0
v1.17.0
Features
- Add new
--sort
option to control the order in the rel. speed comparison and in markup export formats, see #601, #614, #655 (@sharkdp) - Parameters which are unused in the command line are now displayed in parentheses, see #600 and #644 (@sharkdp).
- Added
--log-count
option for histogram plots, seescripts/plot_histogram.py
(@sharkdp)
Changes
- Updated hyperfine to use
windows-sys
instead of the unmaintainedwinapi
, see #624, #639, #636, #641 (@clemenswasser) - Silenced deprecation warning in Python scripts, see #633 (@nicovank)
- Major update of the man page, see 0ce6578, #647 (@sharkdp)
Bugfixes
v1.16.1
v1.16.0
Features
- Added new
--input
option, see #541 and #563 (@snease) - Added possibility to specify
-
as the filename in the--export-*
options, see #615 and #623 (@humblepenguinn)
Changes
Bugfixes
- Fix uncolored output on Windows if
TERM
is not set, see #583 (@nabijaczleweli) - On Windows, only run
cmd.exe
with the/C
option. Use-c
for all other shells, see #568 and #582 (@FilipAndersson245)
Other
- Thanks to @berombau for working on dependency upgrades, see #584
- Fixed installationm on Windows, see #595 and #596 (@AntoniosBarotsis)
v1.15.0
Features
- Disable colorized output in case of
TERM=dumb
orNO_COLOR=1
, see #542 and #555 (@nabijaczleweli) - Add new (experimental)
--min-benchmarking-time <secs>
option, see #527 (@sharkdp)
Bugfixes
- Fix user and kernel times on Windows, see #368 and #538 (@clemenswasser)
Other
- Improve
--help
texts of--export-*
options, see #506 and #522 (@Engineer-of-Efficiency)
v1.14.0
- Add a new
--output={null,pipe,inherit,<FILE>}
option to control
where the output of the benchmarked program is redirected (if at all),
see #377 and #509 (@tavianator, originally suggested by @BurntSushi) - Add Emacs org-mode as a new export format, see #491 (@ppaulweber)
- Relax glibc requirements, see #508 and #512 (@sharkdp)
v1.13.0
Features
- Added a new
--shell=none
/-N
option to disable the intermediate
shell for executing the benchmarked commands. Hyperfine normally
measures and subtracts the shell spawning time, but the intermediate
shell always introduces a certain level of measurement noise. Using
--shell=none
/-N
allows users to benchmark very fast commands
(with a runtime on the order of a few milliseconds). See #336, #429,
and #487 (@cipriancraciun and @sharkdp) - Added
--setup
/-s
option that can be used to runmake all
or
similar. It runs once per set of tests, like--cleanup
/-c
(@avar) - Added new
plot_progression.py
script to debug background
interference effects.
Changes
- Breaking change: the
-s
short option for--style
is now used for
the new--setup
option. - The environment offset randomization is now also available on Windows,
see #484
Other
- Improved documentation and test coverage, cleaned up code base for
future improvements.
v1.12.0
Features
--command-name
can now take parameter names from--parameter-*
options, see #351 and #391 (@silathdiir)- Exit codes (or signals) are now printed in cases of command failures, see #342 (@KaindlJulian)
- Exit codes are now part of the JSON output, see #371 (@JordiChauzi)
- Colorized output should now be enabled on Windows by default, see #427
Changes
- When
--export-*
commands are used, result files are created before benchmark execution
to fail early in case of, e.g., wrong permissions. See #306 (@s1ck). - When
--export-*
options are used, result files are written after each individual
benchmark command instead of writing after all benchmarks have finished. See #306 (@s1ck). - Reduce number of shell startup time measurements from 200 to 50, generally speeding up benchmarks. See #378
- User and system time are now in consistent time units, see #408 and #409 (@film42)
v1.11.0
Features
-
The
-L
/--parameter-list
option can now be specified multiple times to
evaluate all possible combinations of the listed parameters:hyperfine -L number 1,2 -L letter a,b,c \ "echo {number}{letter}" \ "printf '%s\n' {number}{letter}" # runs 12 benchmarks: 2 commands (echo and printf) times 6 combinations of # the "letter" and "number" parameters
-
Add CLI option to identify a command with a custom name, see #326 (@scampi)
Changes
- When parameters are used with
--parameter-list
or--parameter-scan
, the JSON export format
now contains a dictionaryparameters
instead of a single keyparameter
. See #253, #318. - The
plot_parametrized.py
script now infers the parameter name, and its--parameter-name
argument has been deprecated. See #253, #318.
Bugfixes
- Fix a bug in the outlier detection which would only detect "slow outliers" but not the fast
ones (runs that are much faster than the rest of the benchmarking runs), see #329 - Better error messages for very fast commands that would lead to inf/nan results in the relative
speed comparison, see #319 - Show error message if
--warmup
or--*runs
arguments can not be parsed, see #337 - Keep output colorized when the output is not interactive and
--style=full
or--style=color
is used.
v1.10.0
Features
- Hyperfine now comes with shell completion files for Bash, Zsh, Fish and PowerShell, see #290 (@four0000four).
- Hyperfine now comes with a basic man page, see #257 (@cadeef)
- During execution of benchmarks, hyperfine will now set a
HYPERFINE_RANDOMIZED_ENVIRONMENT_OFFSET
environment variable in order to randomize the memory layout. See #235 and #241 for references and details. - A few enhancements for the histogram plotting scripts and the
advanced statistics script - Updates for the
plot_whisker.py
script, see #275 (@ghaiklor)
Bugfixes
Packaging
hyperfine
is now available on MacPorts for macOS, see #281 (@herbygillot)hyperfine
is now available on OpenBSD, see #289 (@minusf)
Package authors: note that Hyperfine now comes with a set of shell completion files and a man page (see above)