What Hyperfine Does
- Multiple runs — statistical significance (mean, stddev, min, max)
- Warmup — configurable warmup runs before measurement
- Outlier detection — flags and handles statistical outliers
- Comparison — benchmark multiple commands side by side
- Parameter scan — sweep a variable across values
- Preparation — run setup before each benchmark iteration
- Export — Markdown, JSON, CSV, AsciiDoc
- Shell — configurable shell or no shell
- Progress bar — visual progress during runs
Comparison
| Tool | Statistical | Multi-cmd | Export |
|---|---|---|---|
| Hyperfine | Full | Yes | MD/JSON/CSV |
| time (shell) | None | No | No |
| bench (Go) | Basic | No | No |
| poop (Zig) | Full | Yes | Terminal |
FAQ
Q: How many runs are needed?
A: By default it decides automatically (at least 10 runs or 3 seconds). Add --min-runs 50 or --max-runs 100 for precise control.
Q: How to eliminate cache effects?
A: Use --prepare to clear caches before each run, or --warmup 5 to let caches stabilize before timing.
Sources
- GitHub: https://github.com/sharkdp/hyperfine
- License: Apache 2.0 + MIT