面试知识库
进阶

性能优化案例表达#

一句话答案#

性能优化表达三要素:发现手段(监控/压测)→定位过程(工具/方法)→优化方案和量化效果(优化前后对比)。

核心要点

模板: “在[场景]下,通过[监控]发现[异常],使用[工具]定位到[根因],通过[方案]解决,[量化提升]“

方向手段工具
SQL慢查询索引优化explain
接口RT高缓存/异步Arthas
GC频繁内存调优GC日志/MAT
面试回答(2分钟版)

性能优化案例的表达一定要有完整的链路,我总结为”发现-定位-方案-效果”四步法。首先是怎么发现问题的,比如通过监控告警发现某接口P99延迟从200ms飙到了2s,或者压测时发现吞吐量上不去;然后是定位过程,用了什么工具,比如用explain分析SQL发现全表扫描,用Arthas的trace命令定位到哪个方法耗时最长,用GC日志发现Full GC频繁;接着是优化方案,比如给慢SQL加了组合索引、把同步调用改成异步、调整了JVM堆内存参数;最后一定要有量化效果,RT从2s降到了200ms,GC频率从每分钟一次降到每小时一次。面试官重点关注的是你的排查思路和工具使用能力,而不是结果本身。有两个常见错误要避免:一是效果数据不切实际,比如说RT从1秒优化到1毫秒,这会被直接质疑;二是只说结果不说过程,让人觉得你只是执行了别人的方案。如果优化后效果反而下降了,也是好的素材,说明你有复杂场景下的实战经验。

追问与易错

追问方向:

  • “怎么证明优化效果?”→ 用监控数据做优化前后对比:同一接口/同一时段的 RT、QPS、错误率变化趋势图;压测报告的吞吐量对比;最好能截图或给出具体数字
  • “优化过程踩了什么坑?”→ 准备一个真实的踩坑案例,比如”加了索引但选错了字段导致回表更慢""缓存加了但没考虑一致性导致数据错乱”,展示你在实践中的学习过程
  • “优化后反而下降了怎么办?”→ 先回滚到优化前版本止损,再分析原因(可能是缓存穿透、锁竞争加剧、GC 参数不当等);这类经历反而是好素材,说明你有复杂场景下的真实实战经验

易错点:

  • ❌ RT 从 1s 到 1ms——不切实际会被质疑
  • ❌ 只说结果不说过程