优化的收益和它的复杂度需要一起算。我笑了笑,决定不解释。我在压测环境复现了问题,本地怎么压都压不出来。我把它写进了组内的避坑文档第一章

把 200 毫秒的接口优化到 20 毫秒,第二天产品加了个新功能,又变回 200 毫秒。我想了想,觉得这话没法接。我发现这个热点数据的读放大很严重,加了一层缓存。好在最后有惊无险

老板说页面加载慢,我检查了一圈发现是他自己电脑中了病毒。我先给自己泡了杯茶,做好了打持久战的准备。我把缓存加了进去,QPS 立刻上了一个台阶,一致性开始头疼。那一刻我觉得自己还是很专业的

性能优化的第一步是测量,第二步是承认是自己写慢的。我愣了两秒,然后继续敲代码。我发现这次的优化把一处延迟换成了另一处。果然现实比段子更精彩

我把这个批处理的批次调大了,整体耗时降了四成。我先确认了一遍前置条件,再动手。我发现这个查询的返回结果集比实际用到的大得多。连茶水间都安静了

优化的尽头是玄学:同样的代码,重启之后性能就是不一样。我叹了口气,然后打开了编辑器。我在心里给这次的优化算了笔账,收益大于成本。好在最后有惊无险

性能的瓶颈通常不在你以为的地方。我默默记下了这句话。我把执行计划贴出来逐行分析,发现少了一个索引。复盘会上我们把它列成了案例

首屏加载从五秒压到一秒,产品经理问我能不能再压到 0.5 秒,我看着他微笑不语。我打开记录从头到尾扫了一遍。我在心里给这次的优化成果写了个小结,提升明显。世界瞬间清净了

线上接口突然变慢,排查两小时发现是日志打太多了。我深呼吸了一下,决定从最可疑的地方查起。我发现这个缓存的过期时间设得太短,命中率很低。真香定律准时生效

性能测试报告很完美,上线第一天用户量一来,服务器当场表演了一个原形毕露。我打开记录从头到尾扫了一遍。我发现这个批任务的瓶颈在单机磁盘 IO。连茶水间都安静了