benchmark

benchmark

热门

使用此技能测量性能基线、检测 PR 前后的性能退化,并比较不同技术栈的替代方案。

23万Star
3.5万Fork
更新于 2026/7/19
SKILL.md
readonly只读
name
benchmark
description

使用此技能测量性能基线、检测 PR 前后的性能退化,并比较不同技术栈的替代方案。

Benchmark — 性能基线及回归检测

使用时机

  • PR 前后测量性能影响
  • 为项目建立性能基线
  • 用户反馈“感觉变慢”时
  • 发布前确保达到性能目标
  • 比较你的技术栈与其他方案

工作原理

模式 1:页面性能

通过浏览器 MCP 测量真实浏览器指标:

1. 导航至每个目标 URL
2. 测量核心 Web 指标:
   - LCP(最大内容绘制)— 目标 < 2.5s
   - CLS(累积布局偏移)— 目标 < 0.1
   - INP(与下一次绘制的交互)— 目标 < 200ms
   - FCP(首次内容绘制)— 目标 < 1.8s
   - TTFB(首字节时间)— 目标 < 800ms
3. 测量资源大小:
   - 页面总重量(目标 < 1MB)
   - JS 包大小(目标 < 200KB gzipped)
   - CSS 大小
   - 图片重量
   - 第三方脚本重量
4. 统计网络请求数
5. 检查阻塞渲染的资源

模式 2:API 性能

对 API 端点进行基准测试:

1. 每个端点请求 100 次
2. 测量:p50、p95、p99 延迟
3. 跟踪:响应大小、状态码
4. 负载测试:10 个并发请求
5. 与 SLA 目标对比

模式 3:构建性能

测量开发反馈循环:

1. 冷构建时间
2. 热重载时间(HMR)
3. 测试套件耗时
4. TypeScript 检查时间
5. 代码检查时间
6. Docker 构建时间

模式 4:前后对比

在变更前后运行以测量影响:

/benchmark baseline    # 保存当前指标
# ... 进行更改 ...
/benchmark compare     # 与基线对比

输出:

| 指标 | 之前 | 之后 | 变化 | 结论 |
|--------|--------|-------|-------|---------|
| LCP | 1.2s | 1.4s | +200ms | 警告:WARN |
| 包大小 | 180KB | 175KB | -5KB | ✓ 更好 |
| 构建 | 12s | 14s | +2s | 警告:WARN |

输出

将基线存储在 .ecc/benchmarks/ 目录下,格式为 JSON。通过 Git 跟踪,以便团队共享基线。

集成

  • CI:在每个 PR 上运行 /benchmark compare
  • /canary-watch 配合用于部署后监控
  • /browser-qa 配合用于完整的发布前检查清单