Chrome的堆分析器中黄色背景对对象标题的含义是什么?

时间:2013-03-13 19:04:43

标签: google-chrome heap developer-tools heap-profiling

尝试在Chrome开发者工具中了解堆分析器。我在快照中看到几个可到达的对象,其中一些有黄色背景,有些没有。这是什么意思?有什么不同?

在这种情况下,颜色图例并不完全有用,因为它本身有一个黄色背景(wtf)。

Heap Snapshot

1 个答案:

答案 0 :(得分:21)

好的,结果是黄色背景意味着拥有它的对象上有一个JavaScript句柄,或者说可以从JavaScript访问,而没有背景(或白色)的对象无法从JavaScript访问,但可以仍然可以从图表的根目录到达。

最有趣的似乎是红色背景的物体。红色背景表示具有它的对象是分离的DOM树的一部分。所以它基本上是一个DOM元素,它不能从根节点到达,但是被其他一些对象引用,它可以从JavaScript访问(有黄色背景)。

Addy Osmani的great write-up简短引用:

  

问:我注意到堆快照中有很多DOM节点   以红色突出显示并表示为“独立DOM树”   其他人是黄色的。这是什么意思?

     

您会注意到几种不同颜色的节点。红色节点没有   从他们直接引用JavaScript,但因为   它们是分离的DOM树的一部分。树中可能有一个节点   从JavaScript引用(可能作为闭包或变量)但是   巧合地阻止整个DOM树变成垃圾   收集。

     

然而,黄色节点确实直接引用了JavaScript。寻找   同一个分离的DOM树中的黄色节点,用于定位引用   你的JavaScript。应该有一系列属性来自   元素的DOM窗口(例如 window.foo.bar [2] .baz )。