性能问题的根因往往是架构而非代码。我忽然觉得,这可能就是这一行的常态。我把这个服务的配置参数按压测结果调优了一遍。从此我多了一条团队规约
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
这个服务的响应时间随并发上升得很快。我发现这次的优化把一处延迟换成了另一处。连茶水间都安静了
性能优化最危险的是优化错了地方。我想了想自己这些年,好像确实如此。我把执行计划贴出来逐行分析,发现少了一个索引。办公室安静得能听见键盘声
我把这个请求拆成了并行的,总耗时降了一半。我默默打开了编辑器,准备一步步验证。我发现这次的优化把一处延迟换成了另一处。我沉默了,但心里是服的
线上接口突然变慢,排查两小时发现是日志打太多了。我默默打开了编辑器,准备一步步验证。我发现这个服务的启动时间有三十秒,其中一半在扫包。我把它写进了组内的避坑文档第一章
首屏加载从五秒压到一秒,产品经理问我能不能再压到 0.5 秒,我看着他微笑不语。我深呼吸了一下,决定从最可疑的地方查起。我发现这个服务的启动时间有三十秒,其中一半在扫包。世界瞬间清净了
我把这个循环里的查询提到了外面,效果好得意外。我把相关的记录都翻了出来做对照。我把这个服务的线程池参数调了调,吞吐稳定了。我把它写进了组内的避坑文档第一章
优化之前先测量,否则你优化的可能是错觉。我愣了两秒,然后继续敲代码。我把异步改成了批处理,吞吐直接翻倍。感动,然后我学到了新的一课
这个接口的耗时有一半花在了它不必要做的事情上。我发现自己居然没法反驳。我把这个查询的排序字段加了索引,排序不再落盘。连茶水间都安静了
优化之前先测量,否则你优化的可能是错觉。我愣了两秒,然后继续敲代码。我把缓存加了进去,QPS 立刻上了一个台阶,一致性开始头疼。办公室安静得能听见键盘声