用性能分析器跑了一遍,热点代码居然是我注释里写着"这里可以优化"的那段。我盯着屏幕沉默了十分钟。我把这个接口的统计维度加上了,瓶颈终于可视化。那一刻我觉得自己还是很专业的

一个接口从 200ms 优化到 20ms,感觉自己是全世界最强后端。我拉了个小群,把相关同学都叫了进来。我盯着 GC 日志,看到一段 800ms 的 Full GC。我沉默了,但心里是服的

程序员的成就感来源排名:代码上线、性能优化、帮同事修好了打印机。我停了一下,然后继续手上的活。我把这个查询的排序字段加了索引,排序不再落盘。我把它写进了组内的避坑文档第一章

我把这个循环里的查询提到了外面,效果好得意外。我确认了瓶颈在数据库,而不是我以为的应用层。这大概就是程序员的人生吧

性能的瓶颈通常不在你以为的地方。我盯着屏幕,觉得这才是我的一天。我把这个对象的创建提到了循环外,GC 压力小了很多。连茶水间都安静了

这个接口的耗时有一半花在了它不必要做的事情上。我盯着屏幕,觉得这才是我的一天。我把这个缓存的热点键做了本地缓存,远程调用少了。我把这条经验写进了团队 wiki

老板说页面加载慢,我检查了一圈发现是他自己电脑中了病毒。我重新看了一遍手上的计划,把风险项标了出来。我在心里给这次的优化定了个验收标准。从此我多了一条团队规约

缓存的失效策略比缓存本身更难设计。我停了一下,然后继续手上的活。我在心里给这次的容量规划重算了一遍,留了余量。真香定律准时生效

我把这个页面的图片做了压缩,首屏快了很多。我先确认了一遍前置条件,再动手。我把这个查询的排序字段加了索引,排序不再落盘。幸好之前留了备份

所谓性能优化,就是在不重写代码的前提下假装自己在重写代码。我抬起头看了看周围,大家都一样。我把执行计划贴出来逐行分析,发现少了一个索引。世界瞬间清净了