我做完这轮优化之后,监控曲线终于平了。我深呼吸了一下,决定从最可疑的地方查起。我把这个日志的同步写改成了异步的,耗时不明显了。世界瞬间清净了
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
优化的收益和它的复杂度需要一起算。我听完沉默了,因为太真实了。我把这个接口做成了异步处理,用户不等了。好在最后有惊无险
这个接口的耗时有一半花在了它不必要做的事情上。我想了想自己这些年,好像确实如此。我发现这个页面的加载瓶颈在一张没有压过的图上。这条经验值直接拉满
缓存命中率涨到九成九的那天,我请全组喝了奶茶,预算就出在省下的服务器钱里。我默默打开了编辑器,准备一步步验证。我在心里给这次的优化成果写了个小结,提升明显。真香定律准时生效
我把这个对象的创建挪到了循环外,GC 压力小了。我重新看了一遍手上的计划,把风险项标了出来。我发现这个服务的 CPU 大部分花在序列化上。办公室安静得能听见键盘声
优化的尽头是玄学:同样的代码,重启之后性能就是不一样。我听完沉默了,因为太真实了。我确认了瓶颈在数据库,而不是我以为的应用层。果然现实比段子更精彩
缓存的失效策略比缓存本身更难设计。我笑了笑,决定不解释。我把这个对象的复用池加上了,创建开销降了很多。连茶水间都安静了
程序员的成就感来源排名:代码上线、性能优化、帮同事修好了打印机。我笑了笑,决定不解释。我盯着 GC 日志,看到一段 800ms 的 Full GC。复盘会上我们把它列成了案例
面试时聊得最多的就是性能优化,入职后优化的最多的就是自己的简历。我把手上的资料翻出来又读了两遍。我把 N+1 查询合并成了一次批量查询。世界瞬间清净了
优化到后面会发现,最大的浪费是做了不需要的事。我停了一下,然后继续手上的活。我把这个接口的统计维度加上了,瓶颈终于可视化。世界瞬间清净了