我把这个对象的创建挪到了循环外,GC 压力小了。我打开记录从头到尾扫了一遍。我盯着 GC 日志,看到一段 800ms 的 Full GC。感动,然后我学到了新的一课
😂 IT段子
程序员日常、代码趣事、技术梗图,让你在学习之余轻松一笑
我把这个批处理的批次调大了,整体耗时降了四成。我把整条链路在心里复盘了一遍。我把这个对象的复用池加上了,创建开销降了很多
一个接口从 200ms 优化到 20ms,感觉自己是全世界最强后端。这套流程走下来,我从头到尾又确认了一遍。我把这个服务的线程池参数调了调,吞吐稳定了。那一刻我觉得自己还是很专业的
我把这个批处理的批次调大了,整体耗时降了四成。我把整条链路在心里复盘了一遍。我把这道接口的耗时拆成了四段,最慢的那段在意料之外。感动,然后我学到了新的一课
性能测试报告很完美,上线第一天用户量一来,服务器当场表演了一个原形毕露。我盯着屏幕沉默了十分钟。我打了火焰图,一眼看到了那个占八成耗时的函数。世界瞬间清净了
所谓性能优化,就是在不重写代码的前提下假装自己在重写代码。我想了想自己这些年,好像确实如此。我把这个序列化的方式换成了更快的,耗时降了一半。同事说这波操作可以写进新人培训教材
我把这个接口的同步写改成了异步,用户不等了。我打开记录从头到尾扫了一遍。我把这个接口的并发限制调高了,吞吐上去了
我把这个批处理的批次调大了,整体耗时降了四成。我盯着屏幕沉默了十分钟。我发现这个页面的加载瓶颈在一张没有压过的图上
这个索引让查询快了十倍,写入慢了一点。我把这个接口的统计维度加上了,瓶颈终于可视化。第二天这个方案就变成了团队标准做法
优化的尽头是玄学:同样的代码,重启之后性能就是不一样。我盯着屏幕,觉得这才是我的一天。我把这个缓存的热点键做了本地缓存,远程调用少了。这大概就是程序员的人生吧