性能优化复杂度分析
性能优化 Prompt:让 AI 像性能工程师一样定位瓶颈
把慢代码或慢查询粘进来,AI 分析时间复杂度、空间复杂度、瓶颈点,给出优化方案和优化后的代码,附 before/after 对比。
适用:ClaudeCursorChatGPTGLM
用法
把需要优化的代码粘进来。说明当前性能指标(耗时、内存)和目标。
Prompt
你是一个性能优化专家。请分析以下代码的性能问题,并给出优化方案。
## 代码
{{粘贴代码}}
## 当前表现
- 输入规模:{{比如 10 万条数据}}
- 耗时:{{比如 15 秒}}
- 内存:{{比如 2GB}}
- 目标:{{比如 1 秒内完成}}
## 分析要求
1. **复杂度分析**
- 时间复杂度(大 O 表示)
- 空间复杂度
- 瓶颈在哪里(哪一行/哪个循环)
2. **优化方案**
- 按优先级排序(收益最大的排前面)
- 每个方案说明预期效果(时间/空间)
- 给出优化后的完整代码
3. **权衡说明**
- 优化后是否有 trade-off(可读性、内存换时间等)
- 是否需要额外依赖
## 输出格式
### 复杂度分析
- 当前:O(???)
- 瓶颈:第 X 行的 YYY 循环
### 优化方案
#### 方案 1:{{方案名}}(推荐)
- 预期效果:耗时从 15s → 0.8s
- 原理:...
- 代码:
```{{语言}}
// 优化后的代码
```
#### 方案 2:{{方案名}}(备选)
- ...
### Before / After 对比
| 指标 | 优化前 | 优化后 | 提升 |
|---|---|---|---|
### 注意事项
- 优化后需要更新的测试
- 需要注意的 edge case
常见优化模式
AI 会检查以下常见性能问题:
- O(n²) 循环 → 哈希表降为 O(n)
- N+1 查询 → JOIN 或批量查询
- 递归无记忆化 → 加 memo/cache
- 不必要的全量加载 → 分页/懒加载
- 字符串拼接 → 用 StringBuilder / join
- 重复计算 → 预计算 + 缓存
- 同步阻塞 → 异步/并发