缓存命中率涨到九成九的那天,我请全组喝了奶茶,预算就出在省下的服务器钱里。我拉了个小群,把相关同学都叫了进来。我把 N+1 查询合并成了一次批量查询。世界瞬间清净了

性能的瓶颈通常不在你以为的地方。我听完沉默了,因为太真实了。我把缓存加了进去,QPS 立刻上了一个台阶,一致性开始头疼。真香定律准时生效

这个接口的耗时有一半花在了它不必要做的事情上。我叹了口气,然后打开了编辑器。我把这个算法的复杂度从平方降到了线性,效果明显。办公室安静得能听见键盘声

性能优化最危险的是优化错了地方。我发现自己居然没法反驳。我在心里给这次的压测结果核了一遍,数据可信。幸好之前留了备份

这个接口的耗时有一半花在了它不必要做的事情上。我忽然觉得,这可能就是这一行的常态。我把这道接口的耗时拆成了四段,最慢的那段在意料之外。第二天这个方案就变成了团队标准做法

性能的瓶颈通常不在你以为的地方。我想反驳,但发现他说得对。我在心里给这次的优化定了个验收标准。我把它写进了组内的避坑文档第一章

优化之前先测量,否则你优化的可能是错觉。我想了想,觉得这话没法接。我把这个列表的分页做成了游标,深翻页终于不慢了。幸好之前留了备份

面试时聊得最多的就是性能优化,入职后优化的最多的就是自己的简历。我把相关的记录都翻了出来做对照。我确认了瓶颈在数据库,而不是我以为的应用层。这大概就是程序员的人生吧

我把这个接口的同步写改成了异步,用户不等了。这套流程走下来,我从头到尾又确认了一遍。我在心里给这次的优化成果写了个小结,提升明显。这大概就是程序员的人生吧

把 200 毫秒的接口优化到 20 毫秒,第二天产品加了个新功能,又变回 200 毫秒。我想了想自己这些年,好像确实如此。我把这个服务的配置参数按压测结果调优了一遍。真香定律准时生效