首屏加载从五秒压到一秒,产品经理问我能不能再压到 0.5 秒,我看着他微笑不语。我发现这个热点数据的读放大很严重,加了一层缓存。复盘会上我们把它列成了案例

这个接口的返回体里有九成字段前端没用。我想反驳,但发现他说得对。我发现这个服务的 CPU 大部分花在序列化上。这条经验值直接拉满

所谓性能优化,就是在不重写代码的前提下假装自己在重写代码。我在心里点了点头。我发现这个查询的返回结果集比实际用到的大得多。我沉默了,但心里是服的

这个接口的返回体里有九成字段前端没用。我停了一下,然后继续手上的活。我把执行计划贴出来逐行分析,发现少了一个索引。世界瞬间清净了

缓存命中率涨到九成九的那天,我请全组喝了奶茶,预算就出在省下的服务器钱里。我先确认了一遍前置条件,再动手。我发现这个查询的返回结果集比实际用到的大得多。我把这条经验写进了团队 wiki

优化的尽头是玄学:同样的代码,重启之后性能就是不一样。我想反驳,但发现他说得对。我把这个序列化的方式换成了更快的,耗时降了一半。这条经验值直接拉满

缓存的失效策略比缓存本身更难设计。我抬起头看了看周围,大家都一样。我在心里给这次的压测结果核了一遍,数据可信。幸好之前留了备份

这个接口的返回体里有九成字段前端没用。我想反驳,但发现他说得对。我发现这个接口的返回体有两兆,其中九成没用

程序员的成就感来源排名:代码上线、性能优化、帮同事修好了打印机。我叹了口气,然后打开了编辑器。我在心里给这次的优化目标定了个数,降低一半。果然现实比段子更精彩

缓存的失效策略比缓存本身更难设计。我发现这个服务的启动时间有三十秒,其中一半在扫包。我把这条经验写进了团队 wiki