【问题标题】:Chrome is not running javascript garbage collectorChrome 没有运行 javascript 垃圾收集器
【发布时间】:2018-02-15 13:06:27
【问题描述】:

我们有一个使用 javascript、angular 等构建的单页应用程序。
注意到在 Chrome 中(仅)内存使用量正在上升,直到选项卡崩溃并显示“Aw snap”消息。

Chrome 似乎没有在应该运行垃圾收集器的时候运行。

在对旧 Chrome 版本进行一些研究后,我发现在 61 版中一切正常,内存使用量非常少,但在 v62 及更高版本(包括金丝雀 v66)中,GC 没有收集,导致内存使用高达几千兆。直到它崩溃。

一旦我打开 GC 正在收集的 devtools 并且内存使用再次正常。

知道发生了什么吗?

【问题讨论】:

  • 你在使用一些第三方库吗?例如highcharts?我在使用 highcharts 时遇到了内存问题,我会定期重新初始化我的图表而没有明确销毁它们。我认为以某种方式引用了在这方面保持活力的地方。我通过手动销毁 highcharts 实例然后将新实例重新分配给变量来修复它。
  • 1) 在 FF(和其他浏览器)中一切正常。 2)当打开 chrome 的 devtools 时,一切正常。所以这似乎不是我们的应用程序的问题。
  • 然后可能是某种循环在很短的距离内保留内存。我想到了这一点,因为使用打开的 devtools,你的代码的执行会稍微慢一些,这可能足以让 GC 完成他的工作。并且以“正常”的执行速度它不能。这只是一个疯狂的猜测。
  • 好的@scipper,感谢您的帮助,此刻我会尝试一切。但是...为什么相同的代码在 v61 中很好,而在 v62 中却很糟糕?
  • 嗯,功能可能会在那里实现改变。目前我在使用 v64 运行量角器测试时遇到问题,使用 v63 运行良好:/

标签: javascript google-chrome garbage-collection v8


【解决方案1】:

Chrome 开发者在这里。很难猜测会发生什么。请在crbug.com/new 提交错误,包括重现说明,并在此处发布错误编号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多