命令行性能测评
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,在 AI 助手中安装 @user_a10ab3ad/hyperfine 技能;安装后即可按基准测试需求调用。
技能介绍
为什么 shell 里的 time 不够用
手动执行一次 time 只得到单个采样,结果会被冷启动、缓存、JIT 编译和系统负载抖动污染,误差常常超过命令本身的真实差异。反复复制命令、手抄数字既低效,也无法区分「更快」和「这次运气好」。这个技能把基准测试收敛成一条可重复的命令:自动预热、多次采样、剔除异常值,输出统计量与相对倍数,并支持导出 JSON 供流水线断言。
核心能力
- 单命令基准测试:给出平均耗时、标准差、最小值与最大值。
- 多命令对比:最多同时对比 5 条命令,输出相对速度比与排序。
- 预热控制:用
--warmup排除缓存与冷启动干扰。 - 自适应采样:
--min-runs/--max-runs自动调整样本量。 - 异常值剔除:过滤系统抖动造成的离群耗时。
- 多格式导出:JSON、Markdown、CSV、Plot。
- 参数扫描:
--parameter-list一次跑完多组参数组合。 - 超时与重试:防止命令挂起,容忍瞬时失败。
执行流程
- 收集最小信息集:待测命令为必填;对比命令、运行次数(默认 10)、预热次数(默认 3)、输出格式可选。
- 构建命令:每条待测命令用单引号包裹,选项放在命令之前。
- 执行并检查标准差,若 σ 超过约 10%,增加
--runs或--warmup后重测。 - 读取 Summary 判断倍数差异,需要留档时用
--export-json导出结构化结果。
边界与注意点
只测量本地命令行程序的执行耗时,不做 GUI 或浏览器测试,不测网络 RTT 与带宽,不分析 CPU 与内存占用,也不支持跨节点分布式对比。结果受系统负载影响,仅提供相对参考;测试长驻进程前应先用 timeout 包裹。全流程本地执行,不上传任何数据,处理含个人信息的数据集时仍需自行遵守相关法规。
使用场景
- 每次重构脚本后,想确认修改是否让运行时间变长。
- 技术选型时,需要量化几个候选命令在同一份数据上的实际耗时。
- CI 流水线想加入性能守卫,导出 JSON 结果并在耗时超标时报警。
- 想找出某条命令在多组线程数下的最优参数配置。
适合人员
- 需要优化脚本耗时的后端工程师,希望量化每次改动的真实影响。
- 负责 CI 流水线的 DevOps 工程师,要在合并前捕获性能回归。
- 常在命令行处理大日志的数据分析师,想选出最快的过滤与压缩命令。