发现问题:找到疑似操作
Chrome Performance 排查
点击开始录制 ,在页面上进行操作,之后观察堆内存使用趋势,尝试多次如观察到为上涨趋势时就有可能是内存泄漏(并不能认定一定是内存泄漏,有可能是内存还没有释放),如果出现这种情况我们就要使用 memory 看板进行进一步的分析
注意点:在每次开始和结束前都要点击垃圾回收
Performance monitor 看板
第二种方式是使用 performance monitor 面板进行排查, 可以一边操作一边查看performance monitor 面板上内存的使用趋势,如果内存出现上涨趋势的情况也有可能是出现内存泄漏
分析内存快照:找到问题原因
Memory 看板
- 切换到memory 看板
- 点击截取快照生成快照 1
- 操作疑似泄漏的操作 再生成快照 2
- 切换到comparsion(对比试图)
- 观察 Delta 列观察增长较大的对象,可能存在内存泄漏的问题
- 重复以上的操作,直到定位到具体的原因
Dom 树引用内存泄漏问题排查
选择 summary 试图,搜索 detached ,搜索到部分的dom已经销毁,但是还被 js 引用这部分会导致内存泄漏
识别 js 对象内存泄漏
录制时,请注意“分配时间轴”上是否有蓝色条状显示, 这些蓝色条表示新的内存分配,这些新的内存分配是内存泄漏的对象。
选择特定的区域排查泄漏的对象。
术语解释
试图
Summary:摘要视图
Comparison:对比视图,与其它快照对比,看增、删、Delta数量及内存大小
Containment:俯瞰视图,自顶向下看堆的情况,根节点包括window对象,GC root,原生对象等等
列头
Shallow Size : 对象本身占用的内存
Retained Size : 对象本身及其引用总共占用的内存
Distance :当前对象到根的引用层级距离
Alloc. Size : 新分配的内存
Freed Size : 释放的内存
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。