【发布时间】:2013-03-25 03:32:32
【问题描述】:
我正在从一个非常简单的网站获得以下时间表。 Chrome 告诉我它正在通过 GC 清理 10MB,但我不知道它是怎么回事!对此的任何见解将不胜感激。
我以为 SO 会让你放大图片,但我想不会 - 这是完整尺寸:http://i.imgur.com/FZJiGlH.png
【问题讨论】:
标签: debugging google-chrome pageload
我正在从一个非常简单的网站获得以下时间表。 Chrome 告诉我它正在通过 GC 清理 10MB,但我不知道它是怎么回事!对此的任何见解将不胜感激。
我以为 SO 会让你放大图片,但我想不会 - 这是完整尺寸:http://i.imgur.com/FZJiGlH.png
【问题讨论】:
标签: debugging google-chrome pageload
这是一个我们可以查看的网站还是内部网站?我想看看。我在谷歌开发者页面上搜索时发现了下面的摘录,Memory Analysis 101:
对象大小
内存可以通过两种方式被对象持有:直接被对象持有 本身,并隐含地持有对其他对象的引用,以及 从而防止它们被垃圾自动处理 收集器(简称GC)。
对象本身所持有的内存大小称为shallow 尺寸。典型的 JavaScript 对象有一些内存留给他们的 描述和存储即时值。
通常,只有数组和字符串可以具有显着的浅大小。 但是,字符串通常主要存储在渲染器内存中, 仅在 JavaScript 堆上公开一个小的包装对象。
尽管如此,即使是一个小对象也可以容纳大量内存 间接地,通过防止其他对象被 自动垃圾收集过程。内存的大小将是 释放,当对象本身被删除时,它的依赖对象 从 GC 根无法访问,称为保留大小。
最后一点似乎是你的问题。
如果您愿意,您可能想要启用 chrome 的此功能,chrome --enable-memory-info,然后在幕后查看一下 chrome 可能会挂断。
在启用内存分析的情况下运行 Chrome 后,您将可以访问两个新属性:
window.performance.memory.totalJSHeapSize; // currently used heap memory
window.performance.memory.usedJSHeapSize; // total heap memory
此功能在here 中有更多详细信息。
【讨论】: