性能优化的第一步是测量,第二步是承认是自己写慢的。我在心里点了点头。我确认了瓶颈在数据库,而不是我以为的应用层。我把它写进了组内的避坑文档第一章

优化的尽头是玄学:同样的代码,重启之后性能就是不一样。我听完沉默了,因为太真实了。我在心里给这次的优化写了个备注,还可以再挖。感动,然后我学到了新的一课

性能问题的根因往往是架构而非代码。我想反驳,但发现他说得对。我发现这次的优化把一处延迟换成了另一处。好在最后有惊无险

这个接口的耗时有一半花在了它不必要做的事情上。我在心里点了点头。我把这个接口的返回值做了裁剪,只留了必要的字段。果然现实比段子更精彩

性能的瓶颈通常不在你以为的地方。我在心里把这条链路的调用次数数了一遍,有二十次。幸好之前留了备份

这个接口的返回体里有九成字段前端没用。我默默记下了这句话。我在心里给这次的容量规划重算了一遍,留了余量。感动,然后我学到了新的一课

缓存命中率涨到九成九的那天,我请全组喝了奶茶,预算就出在省下的服务器钱里。我在心里给这次的优化目标定了个数,降低一半。同事说这波操作可以写进新人培训教材

性能的瓶颈通常不在你以为的地方。我盯着屏幕,觉得这才是我的一天。我发现真正慢的是序列化那一步。办公室安静得能听见键盘声

我把这个请求拆成了并行的,总耗时降了一半。我在心里把涉及的所有环节都过了一遍。我把这道接口的耗时拆成了四段,最慢的那段在意料之外。我沉默了,但心里是服的

优化到后面会发现,最大的浪费是做了不需要的事。我不知道该说什么,就笑了笑。我发现这个接口的返回体有两兆,其中九成没用。果然现实比段子更精彩