# M16 性能优化专题：从基线到结果闭环（教程大纲）

## 1. 为什么要先测再改

- 线上已经可用，但“体感快”不等于可持续优化。
- 先建立基线，避免优化后无法证明收益。
- 目标是做成可复用方法论，而不是一次性调参。

## 2. 指标体系与预算

- Web Core Web Vitals：`LCP / INP / CLS`
- 网络与后端：`TTFB / API p95 / 错误率`
- 工程侧：`构建产物体积 / 关键路由 chunk`
- 建议先定义“红线”和“目标线”。

## 3. 基线采集方案

- 浏览器实验室：Lighthouse（本地与 CI）
- 真实链路：PageSpeed Insights / CrUX / WebPageTest
- 服务端压测：k6 / autocannon
- 仓库内脚本：`.tmp/perf/*.json` 持续落盘对比

## 4. 优化执行节奏（Issue 颗粒度）

- Issue A：指标定义与基线采样
- Issue B：首屏关键链路优化
- Issue C：重模块加载边界优化
- Issue D：缓存与传输策略优化
- Issue E：CI 回归守门与报告自动化

## 5. 每轮记录模板（必须）

- 目标与边界（本轮只做什么）
- 具体改动（代码 / 配置 / 策略）
- 验证方法（命令、路由、场景）
- 结果对比（优化前 vs 优化后）
- 坑点与复盘（为什么踩坑、如何规避）

## 6. 常见坑位清单（持续补充）

- 只看单次 Lighthouse，不看趋势
- 未区分冷启动与热访问
- 把网络波动误判为优化收益
- 多变量同时修改导致无法归因
- 只优化本地，不验证线上真实路径

## 7. 专题最终交付

- 性能专题主文（完整故事线）
- 每个 Issue 的开发日志索引
- 一份可复用的性能测试命令清单
- 一份可直接复刻的 CI 性能守门方案
