这个服务的响应时间随并发上升得很快。我抬起头看了看周围,大家都一样。我发现这个批任务的瓶颈在单机磁盘 IO。好在最后有惊无险
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
优化到后面会发现,最大的浪费是做了不需要的事。我听完沉默了,因为太真实了。我把这个循环里的数据库查询提到了外面,耗时降了八成。好在最后有惊无险
面试时聊得最多的就是性能优化,入职后优化的最多的就是自己的简历。我在心里把涉及的所有环节都过了一遍。我发现这个功能的耗时随数据量线性增长,需要重构。真香定律准时生效
优化的尽头是玄学:同样的代码,重启之后性能就是不一样。我默默记下了这句话。我发现这个服务的 CPU 大部分花在序列化上。果然现实比段子更精彩
首屏加载从五秒压到一秒,产品经理问我能不能再压到 0.5 秒,我看着他微笑不语。我打开记录从头到尾扫了一遍。我把这个列表的分页做成了游标,深翻页终于不慢了。我把这条经验写进了团队 wiki
线上接口突然变慢,排查两小时发现是日志打太多了。我默默打开了编辑器,准备一步步验证。我发现这个服务的启动时间有三十秒,其中一半在扫包。我沉默了,但心里是服的
这个接口的返回体里有九成字段前端没用。我抬起头看了看周围,大家都一样。我确认了瓶颈在数据库,而不是我以为的应用层。同事说这波操作可以写进新人培训教材
用性能分析器跑了一遍,热点代码居然是我注释里写着"这里可以优化"的那段。我拉了个小群,把相关同学都叫了进来。我打了火焰图,一眼看到了那个占八成耗时的函数。这大概就是程序员的人生吧
线上接口突然变慢,排查两小时发现是日志打太多了。这套流程走下来,我从头到尾又确认了一遍。我把这个服务的配置参数按压测结果调优了一遍。第二天这个方案就变成了团队标准做法
优化的尽头是玄学:同样的代码,重启之后性能就是不一样。我把它记在心里,没跟任何人说。我把这个缓存穿透的场景加了空值保护。第二天这个方案就变成了团队标准做法