2016-02-12 38 views
0

使用版本48.0.2564.109米。Chrome垃圾回收器疯狂

我们有一个javascript web应用程序(使用ExtJS构建)。在Chrome中,当我们离开我们的应用程序坐在那里一段时间时,GC开始疯狂。在任务管理器中,您可以看到CPU不断旋转25%左右。

我拍摄了时间线快照和CPU配置文件,您可以看到每秒10次左右的GC尝试收集内存,但收集0B。

我们的应用程序是一个大型的企业应用程序,并使用相当多的内存并定期更新屏幕。

但是,在这段时间里绝对没有JavaScript代码在运行。所以我不能看到这是我们的应用程序正在积极做的事

有谁知道什么可能触发此?

它正在杀死我们的应用程序的性能。

此外,它只发生在我们的选项卡处于活动状态时。如果切换到另一个选项卡,则CPU停止运行并停止GC。

是否还有其他数据需要我帮助确定?

回答

0

什么是您的应用当前JS堆大小?您可以通过收集时间表和启用内存复选框来检查它。

它看起来像你的应用程序接近V8的内存限制,所以V8试图释放一些内存。如果预计应用程序使用那么多内存,则可以使用类似如下方式来增加主机上的限制: - js-flags =“ - max-old-space-size = 2048”

否则,可能只是代码中的内存泄漏。使用堆分析器来追捕它。

+0

谢谢,我们肯定在那个时候使用了很多内存,所以我猜你是对的。你说的话很有道理。我会调查更多并回报。谢谢! –