我正在从一个非常简单的网站获取以下时间表。 Chrome告诉我它通过GC清理了10MB,但我不知道它是怎么回事!任何有关这方面的见解将不胜感激。
我认为可以让你扩展图像,但我猜不是 - 这是完整尺寸:http://i.imgur.com/FZJiGlH.png
答案 0 :(得分:9)
这是我们可以查看的网站还是内部网站?我想看看。在谷歌开发者网页Memory Analysis 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
此功能详见here。