关于javascript:使用chrome工具进行内存泄漏排查

41次阅读

共计 804 个字符,预计需要花费 3 分钟才能阅读完成。

发现问题:找到疑似操作

Chrome Performance 排查

点击开始录制,在页面上进行操作,之后察看堆内存应用趋势,尝试屡次如察看到为上涨趋势时就有可能是内存透露(并不能认定肯定是内存透露,有可能是内存还没有开释),如果呈现这种状况咱们就要应用 memory 看板进行进一步的剖析

留神点:在每次开始和完结前都要点击垃圾回收

Performance monitor 看板

第二种形式是应用 performance monitor 面板进行排查,能够一边操作一边查看 performance monitor 面板上内存的应用趋势,如果内存呈现上涨趋势的状况也有可能是呈现内存透露

剖析内存快照:找到问题起因

Memory 看板


  1. 切换到 memory 看板
  2. 点击截取快照生成快照 1
  3. 操作疑似透露的操作 再生成快照 2
  4. 切换到 comparsion(比照试图)
  5. 察看 Delta 列察看增长较大的对象,可能存在内存透露的问题
  6. 反复以上的操作,直到定位到具体的起因

Dom 树援用内存透露问题排查

  1. 抉择 summary 试图,搜寻 detached,搜寻到局部的 dom 曾经销毁,然而还被 js 援用这部分会导致内存透露

    辨认 js 对象内存透露


录制时,请留神“调配时间轴”上是否有蓝色条状显示,这些蓝色条示意新的内存调配,这些新的内存调配是内存透露的对象。

抉择特定的区域排查透露的对象。

术语解释

试图

Summary:摘要视图
Comparison:比照视图,与其它快照比照,看增、删、Delta 数量及内存大小
Containment:鸟瞰视图,自顶向下看堆的状况,根节点包含 window 对象,GC root,原生对象等等

列头

Shallow Size:对象自身占用的内存
Retained Size:对象自身及其援用总共占用的内存
Distance:以后对象到根的援用层级间隔
Alloc. Size : 新调配的内存
Freed  Size:开释的内存

https://developer.chrome.com/…

正文完
 0