# Strategy: Optimize Measure — 度量驱动优化

> 适用于性能优化，强调先度量后优化。

## 适用条件
- 用户报告性能问题或要求优化
- 任何复杂度级别
- 需要数据驱动的优化决策

## 前置加载（M+ 复杂度时）

```
Read("~/.claude/.ccg/engine/model-router.md")
```

---

## 工作流状态机

[phase-state:1-baseline]
当前阶段：性能基线度量
📍 Next: 基线建立后进入分析
[/phase-state:1-baseline]

[phase-state:2-analyze]
当前阶段：瓶颈分析
Gate: 基线已建立 ✓
📍 Next: 瓶颈识别后进入优化
[/phase-state:2-analyze]

[phase-state:3-optimize]
当前阶段：针对性优化
Gate: 瓶颈已识别 ✓
📍 Next: 优化完成后重新度量
[/phase-state:3-optimize]

[phase-state:4-measure]
当前阶段：优化后度量
Gate: 优化已应用 ✓
📍 Next: 对比基线验证效果
[/phase-state:4-measure]

---

## 阶段详情

### Phase 1: 性能基线 [required]

1. 确定度量指标：
   - 响应时间？吞吐量？内存使用？包大小？加载时间？
2. 运行基线测试：
   - `time` 命令 / benchmark / profiler
   - 记录具体数值
3. 输出基线：
   ```
   📊 性能基线
     指标: [指标名] = [当前值]
     测试方式: [如何测量的]
     目标: [用户期望值，如有]
   ```

### Phase 2: 瓶颈分析

1. 分析代码找出瓶颈
2. 对于 M+ 复杂度，可选调用外部模型：
   - backend 模型: optimizer 角色 — 服务端/算法优化建议
   - frontend 模型: optimizer 角色 — 前端/加载优化建议
3. 按影响大小排序瓶颈：
   ```
   🔍 瓶颈分析
     1. [位置] — 预估影响: [高/中/低] — [原因]
     2. [位置] — 预估影响: [高/中/低] — [原因]
   ```

### Phase 3: 针对性优化

**一次优化一个瓶颈**（便于验证每个优化的效果）：
1. 应用优化
2. 简要说明做了什么
3. 如果涉及算法变更，确保正确性

### Phase 4: 优化后度量 [required]

1. 使用与 Phase 1 **完全相同的方式**重新度量
2. 对比基线：
   ```
   📊 优化效果
     指标: [指标名]
     基线: [优化前值]
     优化后: [优化后值]
     提升: [百分比或绝对值]
     📍 Next: 如需继续优化下一个瓶颈，继续 Phase 2-4 循环
   ```
3. 如果效果不明显 → 回退优化，尝试下一个瓶颈

---

## 铁律

- **不可在没有基线的情况下优化** — Phase 1 不可跳过
- **优化前后必须有数据对比** — Phase 4 不可跳过
- **一次只优化一个瓶颈** — 便于归因效果
- **效果不明显必须回退** — 不可保留无效的"优化"
