一、代码级优化(关键路径)
算法降维
1.时间复杂度 > O(n²) 的嵌套循环改用哈希表(O(1))或二分(O(log n))
2.避免递归爆栈:尾递归优化或迭代改写
3.减少对象开销
4.高频创建对象复用对象池(如数据库连接池)
5.大对象拆分为不可变结构(降低GC压力)
6.计算转移
7.CPU密集型操作改用C++扩展(Python/Rust FFI)
8.实时计算转预计算(空间换时间)
二、并发与异步(释放系统潜力)
1.I/O密集型场景
2.同步阻塞调用改为异步非阻塞(NIO/协程)
3.批处理合并请求(如数据库批量插入)
4.CPU密集型场景
5.无状态服务横向扩容(K8s HPA)
6.锁优化:读多写少用读写锁,避免锁粒度扩散
三、架构层加速(全局视角)
1.缓存策略
2.高频读数据加多层缓存:本地缓存(Caffeine)→ 分布式缓存(Redis)
3.缓存击穿防护:互斥锁或布隆过滤器
4.数据层优化
5.冷热数据分离:ES检索热数据,HBase存冷数据
6.读写分离:写主库+读从库,查询路由分流
7.异步解耦
8.非实时操作投递消息队列(Kafka/RabbitMQ)
9.最终一致性替代强事务(Saga模式)
四、压测验证闭环
基准测试
单接口:wrk -t 8 -c 200 -d 60s URL
全链路:JMeter模拟混合场景
监控关键指标
延迟:P99响应时间 < 200ms
吞吐:QPS波动 < 10%
错误率:< 0.1%
瓶颈定位
APM工具(SkyWalking)定位慢调用链
火焰图(FlameGraph)分析CPU热点函数
优化方案:
延迟高 → 检查缓存/算法/并发锁
吞吐低 → 扩容/异步化/批处理
错误率高 → 降级/熔断/重试机制
原则:测量→优化→验证,避免盲目优化。