工作方法
同一个标签指示器在空闲时可能很流畅,但在导航期间却会卡顿。该技能区分两个问题:每一帧触发了多少渲染工作,以及动画驱动是否与主线程上的其他工作相互争用。它从属性和驱动方式入手,而不是默认添加 GPU 提示。
源码还检查了一些不太明显的路径:每帧一次的 React 状态更新、在大型子树中变化的继承 CSS 变量、开销较大的模糊效果,以及 Motion 的简写 transform。建议与代码相关联,并受浏览器和设备行为的限定;快速的桌面设备不被视为修复有效的证明。
预期交付物
- 动画元素、驱动方式和属性清单
- 基于原因的发现,附文件位置和 修改前后对照建议
- 明确区分代码检查与设备录制的证据
从输入到发现
- 01盘点范围内的动效
列出每个元素、动画驱动和属性,以及导航或水合等同时进行的工作。在判断开销之前,先展开宽泛的 transition 和库的简写写法。
- 02找出可能的原因
先检查布局和绘制工作,再检查主线程争用、逐帧 React 渲染和样式重新计算。把每项建议的修改与具体路径关联起来,而不是笼统地称为优化。
- 03分析真实交互
使用浏览器性能录制来检查掉帧和长任务。尽可能在真实的目标手机上检查;桌面 CPU 节流无法重现较弱的 GPU 或设备的内存限制。
- 04报告结果与验证范围
提供文件位置、原因和 修改前后对照建议,并按预期开销排序。说明哪些是从代码推断的、哪些是实测的,然后等待授权再应用修复。