Skip to content

前端性能优化 SOP

标准化的性能问题排查和优化流程。 📄 查看已填写示例


一、性能问题发现

1.1 用户反馈

  • 页面加载慢
  • 操作卡顿
  • 动画不流畅
  • 白屏/长时间 loading

1.2 监控告警

  • LCP > 2.5s
  • INP > 200ms
  • CLS > 0.1
  • 接口成功率下降
  • 转化率下降

1.3 主动测试

  • Lighthouse 跑分
  • WebPageTest
  • Chrome DevTools Performance Panel
  • 真实用户监控(RUM)

二、问题定位

2.1 确定问题类型

现象可能原因
首屏慢资源大、请求多、渲染阻塞、服务端响应慢
交互卡顿长任务、频繁重渲染、主线程阻塞
布局抖动频繁读写 DOM、未使用 transform
内存泄漏闭包、事件监听未清理、全局变量

2.2 使用工具定位

  1. Network 面板:分析请求大小、数量、瀑布流。
  2. Performance 面板:分析长任务、主线程阻塞、渲染流程。
  3. Lighthouse:获取优化建议。
  4. Memory 面板:分析内存泄漏。
  5. Coverage 面板:分析未使用代码。

三、优化措施

3.1 加载优化

  • [ ] 压缩和合并资源
  • [ ] 使用 CDN
  • [ ] 启用 HTTP/2 或 HTTP/3
  • [ ] 懒加载图片和组件
  • [ ] 代码分割(Code Splitting)
  • [ ] 预加载关键资源
  • [ ] 使用 Tree Shaking 移除未使用代码
  • [ ] 服务端渲染(SSR)或静态生成(SSG)

3.2 渲染优化

  • [ ] 减少 DOM 操作
  • [ ] 使用虚拟滚动处理长列表
  • [ ] 避免强制同步布局
  • [ ] 使用 CSS transform 代替位置变化
  • [ ] 使用 requestAnimationFrame 做动画
  • [ ] 组件级 memoization

3.3 网络优化

  • [ ] 接口聚合,减少请求次数
  • [ ] 合理设置缓存策略
  • [ ] 使用 HTTP 缓存头
  • [ ] 接口压缩(gzip/brotli)
  • [ ] 图片格式优化(WebP/AVIF)

3.4 运行时优化

  • [ ] 长任务拆分到 Web Worker
  • [ ] 防抖和节流
  • [ ] 避免内存泄漏
  • [ ] 及时清理定时器和事件监听

四、验证优化效果

  • [ ] 本地复测 Lighthouse 分数
  • [ ] 在 Performance 面板确认瓶颈消除
  • [ ] 灰度发布后对比 Core Web Vitals
  • [ ] 监控真实用户数据(RUM)
  • [ ] 对比业务指标(转化率、跳出率)

五、文档与复盘

  • [ ] 记录优化前后数据
  • [ ] 记录采用的优化手段
  • [ ] 更新团队性能优化知识库
  • [ ] 分享经验给团队

使用说明:遇到性能问题时,按本 SOP 逐项排查和优化。

基于 MIT 协议发布