2022-10-22 01:08:26
Chrome开发者工具中的Performance面板是用于记录和分析页面运行时活动的核心工具,可帮助开发者定位性能瓶颈。以下是其关键功能和使用方法:
一、准备工作匿名模式使用快捷键 Ctrl + Shift + N(Windows/Linux)或 Cmd + Shift + N(Mac)开启匿名模式,避免插件干扰分析结果。

模拟移动端CPU在Performance面板中点击 Capture Settings(??),选择 4x slowdown 模拟低速CPU环境,以更贴近移动设备性能。

Performance面板包含四个核心窗格:

颜色标识:
点击 Record 按钮(或按 Cmd+E/Ctrl+E)开始记录。
执行页面交互(如点击、滚动),再次点击 Record 停止。
记录完成后,DevTools会自动缩放到关键活动区域。
Overview窗格
FPS图表:绿色竖线越高表示帧率越高,红色块表示卡顿风险。
CPU图表:面积图展示CPU资源消耗类型(脚本、渲染等)。
NET图表:横杠长度表示资源加载时间,浅色部分为等待时间。
缩放操作:拖动选择区域后,使用 W/A/S/D 键放大、缩小或平移。
火焰图
垂直虚线标记关键事件:
蓝线:DOMContentLoaded
绿线:首次绘制
红线:load 事件
选择事件后,Details窗格会显示调用堆栈、耗时等详细信息。

JavaScript问题
大开销输入处理:延迟处理触摸/滚动事件,或使用事件委托。
时机不当的JS:用requestAnimationFrame同步动画,将计算任务移至Web Worker。
长时间运行JS:拆分任务或使用setTimeout分块执行。
样式问题
高开销样式计算:避免触发重排的属性(如width、height),优先使用transform和opacity。
复杂选择器:减少嵌套,优先使用单类选择器。
Recalculate Style事件:在Details窗格查看受影响元素,优化样式规则。

重排(Layout)问题
强制同步布局:避免在帧完成前从DOM读取几何值(如offsetTop)。
布局抖动:批量读取DOM属性后统一写入,减少重复计算。

重绘(Paint)问题
绘制风暴:限制绘制区域,使用will-change提升动画元素。
层数激增:避免滥用translateZ(0),仅在必要时提升层。
通过系统使用Performance面板,开发者可精准定位JS执行、样式计算、重排重绘等环节的性能问题,并采取针对性优化措施。