---
name: perf-analysis
description: 性能分析。识别瓶颈，提供优化建议。
triggers:
  - 性能分析
  - 优化瓶颈
  - performance analysis
  - 性能优化
  - 性能测试
tools: [Bash, Read, Grep, Glob]
user-invocable: true
---

# perf-analysis

性能分析。识别瓶颈，提供优化建议。

## 触发条件

- 响应时间过长
- 资源使用过高
- 吞吐量不足
- 性能回归

## 方法论

### Step 1: 定义性能指标

| 指标 | 目标 | 当前值 |
|------|------|--------|
| 响应时间 | < 200ms | ... |
| 吞吐量 | > 1000 req/s | ... |
| CPU 使用 | < 70% | ... |
| 内存使用 | < 512MB | ... |

### Step 2: 识别瓶颈

1. 数据库查询
   - N+1 查询
   - 缺少索引
   - 大表扫描
2. 网络调用
   - 串行请求
   - 超时设置
   - 重试策略
3. 计算密集
   - 算法复杂度
   - 缓存缺失
   - 同步阻塞

### Step 3: 分析原因

1. 代码层面
2. 配置层面
3. 架构层面

### Step 4: 优化建议

| 问题 | 建议 | 预期效果 |
|------|------|----------|
| N+1 查询 | 批量查询 | 减少 80% 查询 |
| 缺少索引 | 添加索引 | 查询提速 10x |
| 同步阻塞 | 异步处理 | 吞吐量提升 5x |

## 输出格式

```
## 性能分析报告

### 概述
[分析的范围和目标]

### 性能指标
[当前值 vs 目标值]

### 瓶颈分析
[识别的瓶颈和原因]

### 优化建议
[优先级排序的优化方案]

### 预期效果
[优化后的预期性能]
```

## 注意事项

- 要有数据支撑，不要凭感觉
- 要区分代码、配置、架构问题
- 要考虑优化成本和收益
- 要验证优化效果
