95 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: benchmark
description: 使用此技能测量性能基线检测PR前后的回归并比较堆栈替代方案。
origin: ECC
---
# 基准测试 — 性能基线及回归检测
## 使用场景
* 在 PR 前后测量性能影响
* 为项目建立性能基线
* 用户反馈"感觉变慢"时
* 发布前确保达到性能目标
* 对比不同技术栈的性能表现
## 工作原理
### 模式 1页面性能
通过浏览器 MCP 测量真实浏览器指标:
```
1. 导航至每个目标 URL
2. 测量核心网页指标:
- LCP最大内容绘制— 目标 < 2.5 秒
- CLS累积布局偏移— 目标 < 0.1
- INP与下一次绘制的交互— 目标 < 200 毫秒
- FCP首次内容绘制— 目标 < 1.8 秒
- TTFB首字节时间— 目标 < 800 毫秒
3. 测量资源大小:
- 页面总重量(目标 < 1MB
- JS 包大小(目标 < 200KB gzip 压缩后)
- CSS 大小
- 图片重量
- 第三方脚本重量
4. 统计网络请求数量
5. 检查阻塞渲染的资源
```
### 模式 2API 性能
对 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 # 与基线进行比较
```
输出结果:
```
| Metric | Before | After | Delta | Verdict |
|--------|--------|-------|-------|---------|
| LCP | 1.2s | 1.4s | +200ms | WARNING: WARN |
| Bundle | 180KB | 175KB | -5KB | ✓ BETTER |
| Build | 12s | 14s | +2s | WARNING: WARN |
```
## 输出
将基线数据以 JSON 格式存储在 `.ecc/benchmarks/` 中。通过 Git 追踪,便于团队共享基线。
## 集成
* CI在每个 PR 上运行 `/benchmark compare`
* 配合 `/canary-watch` 进行部署后监控
* 配合 `/browser-qa` 完成发布前完整检查清单