打包体积优化了一整天,首屏加载还是慢得像老牛拉车。我默默打开了编辑器,准备一步步验证。我把 N+1 查询合并成了一次批量查询。那一刻我觉得自己还是很专业的

这个接口的返回体里有九成字段前端没用。我在心里点了点头。我把这个查询的排序字段加了索引,排序不再落盘。我沉默了,但心里是服的

老板说页面加载慢,我检查了一圈发现是他自己电脑中了病毒。我盯着屏幕沉默了十分钟。我把这个缓存穿透的场景加了空值保护。同事说这波操作可以写进新人培训教材

性能的瓶颈通常不在你以为的地方。我听完沉默了,因为太真实了。我把这个缓存穿透的场景加了空值保护。我把这条经验写进了团队 wiki

这个接口的返回体里有九成字段前端没用。我在心里点了点头。我把这个算法的复杂度从平方降到了线性,效果明显。办公室安静得能听见键盘声

加了缓存之后接口是快了,就是每次改数据都要跟缓存斗智斗勇。我把相关的记录都翻了出来做对照。我把 N+1 查询合并成了一次批量查询。同事说这波操作可以写进新人培训教材

把 200 毫秒的接口优化到 20 毫秒,第二天产品加了个新功能,又变回 200 毫秒。我想了想自己这些年,好像确实如此。我在心里给这次的优化写了个备注,还可以再挖。世界瞬间清净了

打包体积优化了一整天,首屏加载还是慢得像老牛拉车。我默默打开了编辑器,准备一步步验证。我发现这个页面的加载瓶颈在一张没有压过的图上。这大概就是程序员的人生吧

我把这个接口的同步写改成了异步,用户不等了。我盯着屏幕沉默了十分钟。我把这个对象的创建提到了循环外,GC 压力小了很多。我把这条经验写进了团队 wiki

这个接口的返回体里有九成字段前端没用。我叹了口气,然后打开了编辑器。我把这个批处理的批次调大了,整体耗时降了四成。好在最后有惊无险