0

I am trying to get a snapshot of heap usage of my JavaScript test using Google DevTools. I used this site: https://developers.google.com/chrome-developer-tools/docs/heap-profiling along with Windows 7 and Google Chrome.

The problem is that I need to see the memory metrics (bytes vs kilobytes) under Retained and Shallow size, but it isn't showing. I tried to look online, and mess with DevTools myself, but can't seem to find a way to display this.

Google's own site just goes right from here: enter image description here

to here: enter image description here

without explaining how they did it... Now I see that in the second image, they are using MacOS. Could this be why? I COULD infer what the size metrics are based on these two images, but I really would like to know.

Here is what I see when I go on to DevTools: enter image description here

Thanks for any help.

4

2 回答 2

1

带有“保留路径”的屏幕截图已经很老了。新版本显示保留树。我已经为此创建了一个错误。https://code.google.com/p/chromium/issues/detail?id=240872

如果您在上部窗口中选择特定对象,则保留树将是非空的。

如果对象 A 是另一个对象 B 的唯一保持器,而第二个对象是 100Mb 数组 C 的唯一保持器,那么您将在列表中看到三个对象。

保留大小的小对象 A = sizeof C + sizeof B + sizeof A = ~100Mb。

保留大小的小对象 B = sizeof C + sizeof B = ~100Mb 但小于 A 的保留大小。

大数组 C 具有浅大小 = 保留大小 = 100Mb。

同时,堆的总大小将等于对象 A 的保留大小。因此,保留大小或百分比的总和是一个奇怪的数字,没有任何意义。

如果您断开 B 和 C 之间的链接,则将收集 C。

如果您断开 A 和 B 之间的链接,则 B 和 C 将被收集。

如果您删除指向 A 的链接,则将收集 A、B 和 C。

如果您创建从对象 D 到 C 的链接并拍摄另一个快照,则 A 和 B 的保留大小会变小,因为如果您删除 B 和 C 之间或 A 和 B 之间或从某处到 A 的链接,则不会收集 C因为有从 D 到 C 的链接。

请参阅 yourkit 的文档http://www.yourkit.com/docs/80/help/sizes.jsp

于 2013-05-14T21:39:21.103 回答
1

我在学习使用分析器时问的第一件事。可笑的是,它仍然没有正确标记。

注意:Shallow 和 Retained size 列都以字节为单位表示数据。

于 2014-07-13T04:44:52.380 回答