用性能分析器跑了一遍,热点代码居然是我注释里写着"这里可以优化"的那段。我把这道接口的耗时拆成了四段,最慢的那段在意料之外
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
懒加载加了、分包做了、CDN 上了,最后发现慢的是用户那个 2G 信号。我叹了口气,然后打开了编辑器。我把这个缓存穿透的场景加了空值保护。这大概就是程序员的人生吧
用性能分析器跑了一遍,热点代码居然是我注释里写着"这里可以优化"的那段。我深呼吸了一下,决定从最可疑的地方查起。我发现这个页面的加载瓶颈在一张没有压过的图上。我沉默了,但心里是服的
打包体积优化了一整天,首屏加载还是慢得像老牛拉车。我决定先把手上的事情做完再处理这件事。我把这个缓存穿透的场景加了空值保护。从此我多了一条团队规约
缓存命中率涨到九成九的那天,我请全组喝了奶茶,预算就出在省下的服务器钱里。我拉了个小群,把相关同学都叫了进来。我发现这个页面的加载瓶颈在一张没有压过的图上
这个缓存的存在感很强,命中率却不高。我笑了笑,决定不解释。我发现这个功能的耗时随数据量线性增长,需要重构。我沉默了,但心里是服的
优化到后面会发现,最大的浪费是做了不需要的事。我发现自己居然没法反驳。我把这个服务的配置参数按压测结果调优了一遍。那一刻我觉得自己还是很专业的
这个接口的耗时有一半花在了它不必要做的事情上。我不知道该说什么,就笑了笑。我把这道接口的耗时拆成了四段,最慢的那段在意料之外。真香定律准时生效
缓存的失效策略比缓存本身更难设计。我愣了两秒,然后继续敲代码。我把缓存加了进去,QPS 立刻上了一个台阶,一致性开始头疼。我沉默了,但心里是服的
我把这个对象的创建挪到了循环外,GC 压力小了。我把手上的资料翻出来又读了两遍。我把这个接口做成了异步处理,用户不等了。我把它写进了组内的避坑文档第一章