代码篝火 专业 长文

从零到上线:我用一个周末,给博客换了套骨架

夜航星 2026-09-16 16:58

从零到上线:我用一个周末,给博客换了套骨架

起因很简单:老博客的首页打开要三秒。三秒不长,但足够一个人关掉页面、再也不回来。

一、先量,再改

动手之前先量了一遍,才有后面所有的取舍:

  • 首屏资源 1.8 MB,其中图片占了 1.4 MB;
  • 一次首页渲染打了 27 次数据库查询,其中 18 次是在取同一张表的不同字段;
  • 没有缓存,每次访问都在现算。

二、三处改动

  1. 图片全部转 WebP,并按屏宽压出三档,首屏只加载当前档位;
  2. 把重复查询合并成一次批量查,27 次降到 6 次;
  3. 首页与列表页加 60 秒内存缓存,写完自动失效。

真正关键的其实只有这几行:

cached, ok := cache.Get(key)
if !ok {
    cached = build()
    cache.Set(key, cached, 60*time.Second)
}

三、结果与代价

首屏从 3.1 秒掉到 0.8 秒。代价是缓存失效的逻辑多了一处要维护—— 性能从来不是免费的,它只是把成本换了个地方付。

如果你的站点也在卡,欢迎把「量出来的数字」贴到营地留言里,我们一起看看瓶颈在哪。

回营地接着聊 逛逛其他部落

这条留言住在「代码篝火」。营地是大家聊天的地方,这里是一句话被单独留下、可以慢慢读的地方。