chinanf-boy
hyperfine-zh

🇨🇳翻译: <hyperfine> 命令行基准测试工具 ❤️ 校对 ✅

Last updated Jun 30, 2026
90
Stars
5
Forks
0
Issues
0
Stars/day
Attention Score
11
Language breakdown
No language data available.
Files click to expand
README

hyperfine [![translate-svg]][translate-list]

[translate-svg]: http://llever.com/translate.svg [translate-list]: https://github.com/chinanf-boy/chinese-translate-list 「 命令行基准测试工具 」

中文 | english


校对 ✅

翻译的原文 | 与日期 | 最新更新 | 更多 ---|---|---|--- [commit] | ⏰ 2018 9.28 | ![last] | [中文翻译][translate-list]

[last]: https://img.shields.io/github/last-commit/sharkdp/hyperfine.svg [commit]: https://github.com/sharkdp/hyperfine/tree/094b76d23a74341de2e03e34eb15285895517b2b

贡献

欢迎 👏 勘误/校对/更新贡献 😊 具体贡献请看

生活

If help, buy me coffee —— 营养跟不上了,给我来瓶营养快线吧! 💰


目录

- 特征 - 用法 - 基本基准测试 - 注重 I/O 的程序 - 参数化基准 - 导出结果 - 安装 - macOS - Ubuntu - Arch Linux - Void Linux - Cargo (Linux,macOS,Windows) - 二进制文件 (Linux,macOS,Windows) - 名称的由来

hyperfine

Build Status Build status Version info

命令行基准测试工具 (灵感来自bench) .

演示: fdfind 的 基准测试:

hyperfine

特征

  • 多次运行的统计分析.
  • 支持任意shell命令.
  • 关于基准进展和当前估计的持续反馈.
  • 可以在实际基准之前,预热执行.
  • 可以在每次定时运行之前,设置缓存清除命令.
  • 统计异常值检测.
  • 将结果导出为各种格式: CSV,JSON,Markdown.
  • 参数化基准.
  • 跨平台

用法

基本基准测试

要运行基准测试,您只需调用即可hyperfine <command>.... 参数可以是任何shell命令. 例如:

hyperfine 'sleep 0.3'

Hyperfine将自动确定要为每个命令执行的运行次数. 默认情况下,它将执行至少10个基准测试运行. 要更改此设置,您可以使用-m/--min-runs选项:

hyperfine --min-runs 5 'sleep 0.2' 'sleep 3.2'

注重 I/O 的程序

如果程序执行时间受磁盘 I/O 限制,则基准测试结果可能会受到冷还是热的磁盘缓存严重影响.

如果要在热缓存上运行基准测试,在实际基准测试之前可以使用-w/--warmup,执行一定数量的程序执行的选项(预热预热):

hyperfine --warmup 3 'grep -R TODO *'

相反,如果要运行冷缓存的基准测试,可以使用这个-p/--prepare选项, 在每次计时运行之前,运行特定命令. 例如,要清除Linux上的硬盘缓存,可以运行

sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

要在 Hyperfine 中使用此特定命令,请sudo -v暂时获得sudo权限,然后调用:

hyperfine --prepare 'sync; echo 3 | sudo tee /proc/sys/vm/drop_caches' 'grep -R TODO *'

参数化基准

如果你想在一个参数变化的情况下运行基准测试 (比如线程数) ,你可以使用-P/--parameter-scan选项:

hyperfine --prepare 'make clean' --parameter-scan numthreads 1 12 'make -j {numthreads}'

导出结果

Hyperfine有多种导出基准测试结果的选项: CSV,JSON,Markdown (参见--help文字详情)。 例如,要将结果导出到Markdown,您可以使用--export-markdown,那将创建这样的表格:

| Command | Mean [ms] | Min…Max [ms] | |:---|---:|---:| | find . -iregex '.*[0-9]\.jpg$' | 506.0 ± 8.1 | 495.4…518.6 | | find . -iname '*[0-9].jpg' | 304.9 ± 3.1 | 299.8…309.3 | | fd -HI '.*[0-9]\.jpg$' | 66.2 ± 5.8 | 62.5…86.3 |

安装

macOS

Hyperfine可以通过brew安装:

brew install hyperfine

Ubuntu

下载相应的.deb包,在releases页面并通过dpkg安装它:

wget https://github.com/sharkdp/hyperfine/releases/download/v1.3.0/hyperfine1.3.0amd64.deb
sudo dpkg -i hyperfine1.3.0amd64.deb

Arch Linux

在Arch Linux,可以通过AUR安装hyperfine:

yaourt -S hyperfine

Void Linux

Hyperfine可以通过xbps安装:

xbps-install -S hyperfine

Cargo (Linux,macOS,Windows)

Hyperfine可以通过cargo安装:

cargo install hyperfine

确保使用Rust 1.24或更高版本.

二进制文件 (Linux,macOS,Windows)

releases页面中下载相应的打包文件.

名称的由来

名字hyperfine是根据 铯133 的 hyperfine 能级选择的,铯133的这一能级的频率定义了我们的基本时间单位-1秒钟

译:(课外知识)李永乐老师, 一秒究竟有多长 youtube | bilibili
🔗 More in this category

© 2026 GitRepoTrend · chinanf-boy/hyperfine-zh · Updated daily from GitHub