# 从零到上线:我用一个周末,给博客换了套骨架 起因很简单:老博客的首页打开要三秒。三秒不长,但足够一个人关掉页面、再也不回来。 ## 一、先量,再改 动手之前先量了一遍,才有后面所有的取舍: - 首屏资源 1.8 MB,其中图片占了 1.4 MB; - 一次首页渲染打了 27 次数据库查询,其中 18 次是在取同一张表的不同字段; - 没有缓存,每次访问都在现算。 ## 二、三处改动 1. **图片全部转 WebP,并按屏宽压出三档**,首屏只加载当前档位; 2. **把重复查询合并成一次批量查**,27 次降到 6 次; 3. **首页与列表页加 60 秒内存缓存**,写完自动失效。 真正关键的其实只有这几行: ~~~go cached, ok := cache.Get(key) if !ok { cached = build() cache.Set(key, cached, 60*time.Second) } ~~~ ## 三、结果与代价 首屏从 3.1 秒掉到 0.8 秒。代价是缓存失效的逻辑多了一处要维护—— **性能从来不是免费的,它只是把成本换了个地方付。** 如果你的站点也在卡,欢迎把「量出来的数字」贴到营地留言里,我们一起看看瓶颈在哪。
登录后才能回复。去登录

全部回复(0)

还没有回复

抢个沙发,做 2 楼。

楼层流由「圈吧模式」插件提供 · 圈子与贴吧共享同一份数据