2018-01-13 20:27:24 +01:00
|
|
|
# hyperfine
|
|
|
|
|
|
|
|
|
|
A command-line benchmarking tool (inspired by [bench](https://github.com/Gabriel439/bench)).
|
|
|
|
|
|
2018-01-13 21:31:51 +01:00
|
|
|
Usage
|
2018-01-13 20:27:24 +01:00
|
|
|
``` bash
|
|
|
|
|
> hyperfine 'sleep 0.3' 'sleep 1.7'
|
|
|
|
|
```
|
|
|
|
|
|
2018-01-13 21:31:51 +01:00
|
|
|
## Demo
|
2018-01-14 22:12:02 +01:00
|
|
|
|
|
|
|
|

|
2018-01-13 21:31:51 +01:00
|
|
|
|
2018-01-13 20:27:24 +01:00
|
|
|
## Features
|
|
|
|
|
|
2018-01-13 21:07:28 +01:00
|
|
|
* Statistical analysis across multiple runs
|
|
|
|
|
* Support for arbitrary shell commands
|
|
|
|
|
* Visual indication of the benchmark progress
|
|
|
|
|
* Warmup runs that are executed before the actual benchmark
|
|
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
2018-01-14 22:12:02 +01:00
|
|
|
Hyperfine can be install via [cargo](https://doc.rust-lang.org/cargo/):
|
2018-01-13 21:07:28 +01:00
|
|
|
```
|
|
|
|
|
cargo install hyperfine
|
|
|
|
|
```
|
2018-01-13 20:27:24 +01:00
|
|
|
|
|
|
|
|
## Origin of the name
|
|
|
|
|
|
|
|
|
|
The name *hyperfine* was chosen in reference to the hyperfine levels of caesium 133 which play a crucial role in the
|
|
|
|
|
[definition of our base unit of time](https://en.wikipedia.org/wiki/Second#Based_on_caesium_microwave_atomic_clock)
|
|
|
|
|
— the second.
|