技术

给你的网站定一份性能预算

2 分钟1 条评论

"性能优化"为什么总是不了了之?因为没有预算。没有预算,就没有约束力。

什么是性能预算#

性能预算就是一句话:我们承诺页面在什么设备、什么网络下,做到什么指标。比如:

  • LCP ≤ 2.5s(4G,中端安卓机)
  • 首屏 JS ≤ 170KB(gzip 前)
  • CLS ≤ 0.1

关键不是数字多精确,而是它是团队承诺,不是某个人的愿望。

把预算接进流水线#

贴在墙上的预算没有意义,要让它自动化执行:

{
  "budgets": [
    {
      "path": "/*",
      "resourceSizes": [
        { "resourceType": "script", "budget": 170 }
      ]
    }
  ]
}

Lighthouse 的预算机制可以在 CI 里直接卡失败。超过预算的 PR 合并不进去,讨论自然就发生了。

预算超了怎么办#

三种处理方式,按优先级排序:

  1. 删掉:那个三方统计脚本真的必要吗?
  2. 替换:有没有更轻的实现?
  3. 申请调额:确实要加,就走正式流程调高预算,并且说明为什么。

第三条最重要——预算可以被调整,但必须显式调整。"先上线再说"是预算制度的天敌。

从哪里开始#

不用追求一步到位。先测出当前的真实数据,然后把每个指标收紧 10%~20%,就是一个足够好的第一版预算。

评论 1

登录后即可参与讨论。

  • K
    Kenji

    性能预算这个提法很好,比"尽力优化"可执行多了,准备在下个季度引入。