16

我正在从一个非常简单的网站获得以下时间表。Chrome 告诉我它正在通过 GC 清理 10MB,但我不知道它是怎么回事!对此的任何见解将不胜感激。

GC 事件

我认为 SO 会让你扩大图像,但我想不会 - 这是完整尺寸:http: //i.imgur.com/FZJiGlH.png

4

1 回答 1

11

这是一个我们可以查看的网站还是内部网站?我想看看。我在谷歌开发者页面上搜索时看到了下面的摘录,内存分析 101

对象大小

内存可以通过两种方式被对象持有:直接由对象本身持有,以及隐含地持有对其他对象的引用,从而防止它们被垃圾收集器(简称 GC)自动释放。

对象本身持有的内存大小称为浅大小。典型的 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

此处详细介绍了此功能。

于 2013-04-13T19:52:48.217 回答