T12
优化与维护
⭐⭐⭐⭐
⏱ 约 60 分钟
性能优化
Performance Optimization
💡 适用场景: 性能调优、资源优化
📄 T12: Performance Optimization(性能优化) 其他
⭐⭐⭐⭐ 中高级 | 系统级性能分析和优化
💡 核心概念 核心概念
性能优化的步骤:
- 测量 - 确定当前性能
- 分析 - 找到瓶颈
- 优化 - 改进瓶颈部分
- 验证 - 确认改进有效
不同层面的性能:
- 响应时间 - 用户体验,目标<200ms
- 吞吐量 - 系统处理能力,QPS
- 并发 - 同时处理的用户数
- 资源使用 - CPU、内存、磁盘I/O
✅ 最佳实践 最佳实践
🎯 原则1: 从顶层开始优化
- 架构级优化 > 代码级优化
- 缓存 > 数据库优化
- 异步 > 同步
- 定向优化,不要过度优化
🎯 原则2: 使用profiling工具
- 不要基于猜测优化
- 用工具找真正的瓶颈
- 关注hotspot函数
🎯 原则3: 缓存策略
- 多层缓存(内存、Redis、浏览器)
- 缓存穿透、击穿、雪崩防护
- 定期清理和更新
🎯 原则4: 异步处理
- 长操作应该异步
- 使用消息队列
- 使用工作线程池
📄 常见性能优化场景 其他
场景1: 应用级性能分析
Prompt:
我的应用性能下降,请帮我诊断。
现象:
- 平均响应时间:[时间]
- 99%响应时间:[时间]
- 目标:[目标时间]
已知:
- CPU使用率:[百分比]
- 内存使用:[大小]
- 数据库查询数:[数字]
关键操作的[timings]:
[操作1]: [时间]
[操作2]: [时间]
[操作3]: [时间]
问题:
1. 瓶颈在哪里?
2. 应该profiling什么?
3. 怎样优化?
场景2: 缓存策略设计
Prompt:
请为我设计缓存策略。
应用特点:
- 热数据:[说明]
- 更新频率:[频率]
- 一致性要求:[要求]
缓存候选数据:
1. [数据1]: 更新频率[频率], 访问频率[频率]
2. [数据2]: ...
需要考虑:
1. 缓存层次(内存、Redis、CDN)
2. 缓存更新策略(TTL、事件驱动、LRU)
3. 缓存穿透、击穿、雪崩防护
4. 数据一致性处理
请给出缓存设计方案。
场景3: 并发性能优化
Prompt:
我的系统在高并发下性能下降。
性能指标:
- 单用户:[性能正常]
- 1000并发:[性能下降]
- 10000并发:[不可用]
瓶颈分析:
- CPU:[使用率]
- 内存:[使用率]
- 数据库连接:[使用数]
- 线程:[线程数]
代码热点:
[并发相关的代码]
问题:
1. 为什么并发下性能下降这么多?
2. 瓶颈是什么?
3. 怎样优化到10000并发?
📄 性能优化工具 其他
| 工具 | 用途 | 特点 |
|---|---|---|
| JProfiler | Java性能分析 | 可视化、实时 |
| perf | Linux性能分析 | 底层、功能强大 |
| Flame Graphs | CPU使用分析 | 直观展示 |
| New Relic | APM监控 | 全栈视图 |
📋 性能优化检查清单 检查清单
📄 🎓 下一步 其他
- 性能优化涉及数据库 → T10: Query Optimization
- 优化代码审查 → T07: Code Review
💬 Prompt 模板 (3)
性能优化 - Prompt 1
我的应用性能下降,请帮我诊断。
现象:
- 平均响应时间:[时间]
- 99%响应时间:[时间]
- 目标:[目标时间]
已知:
- CPU使用率:[百分比]
- 内存使用:[大小]
- 数据库查询数:[数字]
关键操作的[timings]:
[操作1]: [时间]
[操作2]: [时间]
[操作3]: [时间]
问题:
1. 瓶颈在哪里?
2. 应该profiling什么?
3. 怎样优化?
性能优化 - Prompt 2
请为我设计缓存策略。
应用特点:
- 热数据:[说明]
- 更新频率:[频率]
- 一致性要求:[要求]
缓存候选数据:
1. [数据1]: 更新频率[频率], 访问频率[频率]
2. [数据2]: ...
需要考虑:
1. 缓存层次(内存、Redis、CDN)
2. 缓存更新策略(TTL、事件驱动、LRU)
3. 缓存穿透、击穿、雪崩防护
4. 数据一致性处理
请给出缓存设计方案。
性能优化 - Prompt 3
我的系统在高并发下性能下降。
性能指标:
- 单用户:[性能正常]
- 1000并发:[性能下降]
- 10000并发:[不可用]
瓶颈分析:
- CPU:[使用率]
- 内存:[使用率]
- 数据库连接:[使用数]
- 线程:[线程数]
代码热点:
[并发相关的代码]
问题:
1. 为什么并发下性能下降这么多?
2. 瓶颈是什么?
3. 怎样优化到10000并发?