SuperAPI AI 工具集

zbench

通用与其它

查看项目

更新于 10-15 21:37

技能介绍

用途:用 romkatv/zsh-bench 对交互式 zsh 做正规基准测试,测量真实用户可感知延迟,并跟踪配置变化引起的性能回归。

主要能力:提供 hey zbench(运行并显示阈值指示,若有基线自动对比)、hey zbench-save(保存为基线并追加历史)、hey zbench-compare(与基线显式 diff)、hey zbench-check(超阈值时退出非零,供 git bisect 使用)、hey zbench-baseline(仅显示已存基线)、hey zbench-history(显示 TSV 历史)。命令可附加 zsh-bench 参数,如 hey zbench --iters 4。

指标与阈值:first_prompt_lag_ms 50ms、first_command_lag_ms 150ms、command_lag_ms 10ms、input_lag_ms 20ms。指示符:🟢 ≤50%、🟡 ≤100%、🟠 ≤200%、🔴 >200%。exit_time_ms 仅展示不计阈值。回归判定为变化 >20% 或 >5ms(取较大者)。

用法:典型流程为在干净构建上 hey zbench-save 建立基线,修改 zsh 配置并 hey rebuild,再用 hey zbench 检查回归,满意后再次 hey zbench-save 更新基线。配合 git bisect:git bisect start、git bisect bad HEAD、git bisect good <commit>、git bisect run hey zbench-check。

文件布局:benchmarks/zsh-bench/<Host>.json 存各主机基线,history/<Host>.tsv 存追加式历史;packages/zsh-bench.nix 为 Nix 包;bin/hey.d/zbench.just 为 Hey recipe;bin/zbench-report 用 Python 解析、比较并格式化结果。基线按主机保存,因硬件差异。

调试慢启动:提供分阶段计时脚本思路,可粘贴到 zsh -c '...' 中逐段计时;已知常见原因包括重复 compinit(约 2000-3000ms)、Nix store glob、启动时扫描文件、未缓存的 eval "$(tool init)"、双重 brew shellenv、插件管理器开销等,并给出 _cache 模式(缓存工具初始化输出、二进制变化时失效)。可用 zsh-bench --iters 1 --scratch-dir /tmp/zbench-debug 加 dbg/replay 观察实际过程。

设计要点:采用非 raw 输出(16 次迭代中位数);基线用 JSON,历史用 TSV。

限制:资料未提供安装步骤、许可、支持平台等细节,暂未提供。