本文主要记录Chrome Dev Tools 关于性能调优的使用方法。基础用法请参见基础篇web
loading
相对,是running
的性能,找出页面性能瓶颈,建议:
隐身模式下
使用.Capture Settings
->20x slowdown
(for mobile)Save profile
/ Load profile
Record
结果分析:
FPS
出现红色时,说明丢帧严重,绿色越高,性能越好.CPU
与底部的Summary
相呼应,当该栏被颜色填满时,说明CPU
满负荷.FPS
,CPU
,NET
上面时,能够看到放大的screenshotFrames
,查看FPS,不该高于60.Frames
中,点击某一帧,Summary
中显示Screenshot,点击可放大;此时若开启Enable advanced paint instrumentation
,会显示Layer
Interactions
:用户交互事件Cmd + Shift + p
->show rendering
,显示Rendering
TabOverview
上点击、按住并移动鼠标,来聚焦某一个时间段.(或者使用W A S D键)bottleneck
Summary
中,Rendering
是否过多->减小Rendiering
Memory
勾选后显示内存使用状况Network
,左侧线:request sent以前的事件;浅色:request sent,waiting;深色:content download;右侧线:等待主进程.Main
,x
:时间,越宽说明运行时间越长;y
:callstack.Main
中,Shift+鼠标选择区域,能够看到具体时间Main
中,颜色随机分配,深黄色Scriping
,紫色Rendering
,Main
中,事件右上角红色三角,说明极可能有性能问题.Main
中的事件,Summary
中会显示详情,reveal
跳转至相应codeconsole
旁边有rendering
.Paint Flashing
layer borders
scrolling performance issues
Summary
跳转至对应代码,能够发现右侧又事件,指示出强制重绘的事件.Show Heaviest Stack
call tree
查找哪个root activity
消耗了最多的时间bottom up
展现直接消耗时间的事件event log
按调用顺序展现,filter
选择事件类型Memory
列表示原生内存,JavaScript Memory
表示JS堆。Shadow Size
。Retained Size
。Distance
是指该内存节点与GC 根之间的距离。若是相同类型的几乎全部对象的距离都相同,只有少数对象的距离偏大,则有必要进行调查。Take Heap Snapshot
,而后点击Take Heap Snapshot
按钮。Summary
视图的 Class filter 文本框中键入 Detached
,搜索已分离的 DOM 树。Record Allocation Timeline
单选按钮,按Start
按钮,执行您怀疑致使内存泄漏的操做。完成后,按stop recording
按钮。Chart
。分配时间线上的蓝色竖线表示新内存分配。start
按钮,执行指望观察的操做,完成后点击stop
。Timeline
记录中,JS 堆或节点计数图表频繁上升和降低指示存在频繁的垃圾回收。