# Hyperfine — Command-Line Benchmarking Tool > Hyperfine is a command-line benchmarking tool written in Rust. Run benchmarks with statistical analysis: multiple runs, warmup, outlier detection, comparison across commands, and export results. By the author of bat and fd. ## Install Save as a script file and run: ## Quick Use ```bash brew install hyperfine # macOS cargo install hyperfine # Rust sudo apt install hyperfine # Debian/Ubuntu ``` ```bash # Basic benchmark hyperfine "sleep 0.5" # Compare two commands hyperfine "fd pattern" "find . -name pattern" # With warmup runs hyperfine --warmup 3 "cargo build" # Multiple commands with labels hyperfine \ -n ripgrep "rg pattern" \ -n grep "grep -r pattern ." # Export results hyperfine --export-markdown results.md "rg pattern" "grep -r pattern ." hyperfine --export-json results.json "command" # Parameter scan hyperfine --parameter-scan threads 1 8 "cargo build -j {threads}" # Preparation command (runs before each) hyperfine --prepare "sync; echo 3 | sudo tee /proc/sys/vm/drop_caches" "cat large_file" ``` ## Intro Hyperfine is a command-line benchmarking tool written in Rust by David Peter (also author of bat, fd, and pastel). Runs a command multiple times, performs statistical analysis, detects outliers, and outputs clean formatted results. The standard tool for CLI benchmarking. - **Repo**: https://github.com/sharkdp/hyperfine - **Stars**: 27K+ - **Language**: Rust - **License**: Apache 2.0 + MIT ## 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: 需要多少次运行?** A: 默认自动决定(至少 10 次或 3 秒)。加 `--min-runs 50` 或 `--max-runs 100` 精确控制。 **Q: 怎么排除缓存影响?** A: 用 `--prepare` 在每次运行前清缓存;或 `--warmup 5` 让缓存稳定后再计时。 ## 来源与致谢 Sources - GitHub: https://github.com/sharkdp/hyperfine - License: Apache 2.0 + MIT --- Source: https://tokrepo.com/en/workflows/ce6e174e-3651-11f1-9bc6-00163e2b0d79 Author: Script Depot