Chrome Dev Tools---[性能篇]
· 5 min read
本文主要记录Chrome Dev Tools 关于性能调优的使用方法。基础用法请参见基础篇
Performance
- 与
loading相对,是running的性能,找出页面性能瓶颈,建议:- 在
隐身模式下使用. Capture Settings->20x slowdown(for mobile)
- 在
- 右键 ->
Save profile/Load profile Record结果分析:FPS出现红色时,说明丢帧严重,绿色越高,性能越好.CPU与底部的Summary相呼应,当该栏被颜色填满时,说明CPU满负荷.- 鼠标悬浮于
FPS,CPU,NET上面时,可以看到放大的screenshot - 鼠标悬浮于
Frames,查看FPS,不应高于60. Frames中,点击某一帧,Summary中显示Screenshot,点击可放大;此时若开启Enable advanced paint instrumentation,会显示LayerInteractions:用户交互事件Cmd + Shift + p->show rendering,显示RenderingTabOverview上点击、按住并移动鼠标,来聚焦某一个时间段.(或者使用W A S D键)
- 找出瓶颈
bottleneckSummary中,Rendering是否过多->减少RendieringMemory勾选后显示内存使用情况Network,左侧线:request sent之前的事件;浅色:request sent,waiting;深色:content download;右侧线:等待主进程.- 展开
Main,x:时间,越宽说明运行时间越长;y:callstack. Main中,Shift+鼠标选择区域,可以看到具体时间Main中,颜色随机分配,深黄色Scriping,紫色Rendering,Main中,事件右上角红色三角,说明很可能有性能问题.- 点击
Main中的事件,Summary中会显示详情,reveal跳转至相应code console旁边有rendering.Paint Flashinglayer bordersscrolling performance issues- 在调用栈最底层的紫色事件(Layout),放大后很可能也有红色三角,点击,再从
Summary跳转至对应代码,可以发现右侧又事件,指示出强制重绘的事件. - 事件类型参考
- 查看调用栈,分析性能
- 三个Tab均展示选中事件
- 右侧
Show Heaviest Stack call tree查找哪一个root activity消耗了最多的时间bottom up展示直接消耗时间的事件event log按调用顺序展示,filter选择事件类型
Memory
- Menu -> More tools -> Task manager 打开任务管理器
- 右键点击表格标题 -> 启用JavaScript memory
Memory列表示原生内存,JavaScript Memory表示JS堆。
- 内存术语
- 对象可通过两种方式占用内存:
- 直接通过对象自身占用,对象自身占用内存大小在分析结果中表现为
Shadow Size。 - 通过保持对其他对象的引用隐式占用。对象本身、连同其无法从GC根
- 直接通过对象自身占用,对象自身占用内存大小在分析结果中表现为
- 对象可通过两种方式占用内存: