【问题标题】:What is Chrome doing with this "GC Event"?Chrome 对这个“GC 事件”做了什么?
【发布时间】:2013-03-25 03:32:32
【问题描述】:

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

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

【问题讨论】:

    标签: debugging google-chrome pageload


    【解决方案1】:

    这是一个我们可以查看的网站还是内部网站?我想看看。我在谷歌开发者页面上搜索时发现了下面的摘录,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 中有更多详细信息。

    【讨论】:

    • 不,有问题的网站不公开。我只是不明白为什么转储 10mb 的内存需要这么长时间......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多