用途:用于 RTK CLI 的性能分析与优化,在添加依赖或进行性能敏感改动前后进行基准测量与回归对比。
硬性目标:启动时间 <10ms、剥离后二进制体积 <5MB、常驻内存 <5MB、每过滤器 token 节省 ≥60%,均为发布阻塞项。
主要能力:
- 启动时间基准:brew install hyperfine 后,用 hyperfine 'rtk git status' --warmup 3 --export-json /tmp/before.json 测基线;改动后先 cargo build --release,再对比 target/release/rtk 与已安装版本。
- 体积检查:cargo build --release 后 ls -lh target/release/rtk;必要时用 cargo bloat --release --crates 或 -n 20(cargo install cargo-bloat)。
- 内存测量:macOS 用 /usr/bin/time -l,Linux 用 /usr/bin/time -v,关注 maximum resident 是否低于约 5MB。
- 正则审计:用 grep -n "Regex::new" src/*.rs 查找;所有 Regex::new 必须位于 lazy_static! 块内,否则为性能缺陷。
- 依赖影响评估:加依赖前后各测一次启动时间,增加 >1ms 需调查,>3ms 应拒绝。禁用依赖包括 tokio、async-std、rayon、reqwest(可考虑 ureq)。
- 分配分析:macOS 用 Instruments 或 cargo-instruments,减少逐行 String 分配和不必要的 clone,优先借用切片。
- token 节省验证:在测试中统计输入/输出 token 数,断言节省 ≥60%。
使用方式:按“基线测量→修改→重建→对比”的流程执行;若改动后启动时间超过基线 1ms 需调查,超过 10ms 视为回归不予合并。
限制:资料未说明具体适用的 RTK 版本、运行平台细节与完整安装步骤,部分命令依赖 macOS 或 Linux 工具链,缺失信息暂未提供。