• Tags , ,         
  • 2018-03-14  10:14:36        
  • 39 °C    

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

    分配分析器如何工作

    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