用性能分析器跑了一遍,热点代码居然是我注释里写着"这里可以优化"的那段。我重新看了一遍手上的计划,把风险项标了出来。我发现这个查询的返回结果集比实际用到的大得多。感动,然后我学到了新的一课

性能优化的第一步是测量,第二步是承认是自己写慢的。我发现自己居然没法反驳。我在心里给这次的优化成果写了个小结,提升明显

打包体积优化了一整天,首屏加载还是慢得像老牛拉车。我拉了个小群,把相关同学都叫了进来。我把这个接口的统计维度加上了,瓶颈终于可视化。第二天这个方案就变成了团队标准做法

程序员的成就感来源排名:代码上线、性能优化、帮同事修好了打印机。我在心里点了点头。我把这个页面的资源做了懒加载,首屏快了很多。我沉默了,但心里是服的

性能优化的第一步是测量,第二步是承认是自己写慢的。我确认了瓶颈在数据库,而不是我以为的应用层。好在最后有惊无险

打包体积优化了一整天,首屏加载还是慢得像老牛拉车。我默默打开了编辑器,准备一步步验证。我发现这个查询的返回结果集比实际用到的大得多。同事说这波操作可以写进新人培训教材

这个缓存的存在感很强,命中率却不高。我停了一下,然后继续手上的活。我把这个循环里的数据库查询提到了外面,耗时降了八成。我把这条经验写进了团队 wiki

懒加载加了、分包做了、CDN 上了,最后发现慢的是用户那个 2G 信号。我笑了笑,决定不解释。我把这个接口的并发限制调高了,吞吐上去了。那一刻我觉得自己还是很专业的

我把这个接口的同步写改成了异步,用户不等了。我盯着屏幕沉默了十分钟。我发现这个批任务的瓶颈在单机磁盘 IO。好在最后有惊无险

我做完这轮优化之后,监控曲线终于平了。我把这个对象的创建提到了循环外,GC 压力小了很多。连茶水间都安静了