使用分配分析器工具来查找未被正确地垃圾收回收,并继续保留在内存中的对象。

分配分析器如何工作

allocation profiler(分配分析器)结合了堆分析器中快照的详细信息以及Timeline(时间轴)面板的增量更新以及追踪信息。与这些工具相似,追踪对象堆的分配过程包括开始记录,执行一系列操作,以及停止记录并分析。

分配分析器在记录中周期性生成快照(频率为每50毫秒),并且在记录最后停止时也会生成一份快照。

启用分配分析器

要开始使用分配分析器:

  • 确认你安装了最新的 Chrome Canary
  • 打开 DevTools 的 Profiles(配置)面板。
  • 现在,在Profiles(配置)面板中,你可以看见一项名为 Record Allocations Timeline(录制分配时间轴) 的配置。

读取一个堆分配分析

堆分配分析器(heap allocation profile)显示正在创建对象的位置,并标识保留路径。 在下面的快照中,顶栏的条形图表示对象什么时候在堆中被找到。

每个条形的高度对应最近分配的对象的大小,而其颜色颜色表示这些对象是否仍然存在于最终堆快照中。蓝色表示在时间轴的最后该对象依旧存在,灰色则说明对象在时间轴内被分配,但是已经被垃圾回收器回收了:

在下面的例子中,一个操作被执行了10次。这个简单的程序加载了五个对象,所以显示了五个蓝色的条形图案。但是最左边的条形图表明了一个潜在的问题。

接下来你可以使用时间轴中的滑动条来放大这一特定的快照,然后查看最近被分配到这一点上的对象。

点击堆中的某个特定对象会在堆快照的顶部显示其保留树。检查对象的保留路径会让你明白为什么对象没有被回收,并且你可以在代码中做出更改移除不必要引用。

按函数查看内存分配

您还可以通过JavaScript函数查看内存分配。 有关详细信息,请参阅按函数调查内存分配

说明

翻译自:https://developers.google.com/web/tools/chrome-devtools/console/events

 

 

本文内容来自:Chrome DevTools开发者工具如何使用分配分析器工具– Break易站


—Author: Arvin Chen —Web Address: www.breakyizhan.com (Break易站)

 
转载请保留页面地址:https://www.breakyizhan.com/chromeconsole/2272.html
扫描二维码添加微信 
  • ,每次淘宝领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘50元优惠券!添加微信后回复机械键盘即可领取!
    支持我们,就用微信淘宝!