Chrome开发者工具:潜在内存耗尽崩溃前暂停

47

在最新的Chrome DevTools中,我可以看到一个新的信息:

进入图像描述

现在,我不确定如何使用这些信息。它似乎会随机出现在应用程序中。如何调试应用程序以避免潜在的内存不足崩溃?我在任务管理器中检查到,在这些信息出现时,该应用程序的内存使用量约为55K,对于该应用程序来说,这是相当低的(当它计算一些数据时,它的内存消耗可能会更高)。

因此,我想知道这些信息是否准确,并且是否存在崩溃的风险。如果有,我该怎么处理?


1
如果每次运行应用程序时都发生这种占用内存的情况,那么它可能是这些内存泄漏的罪魁祸首。尝试检查代码中导致这些泄漏的行。此外,阅读此Google论坛帖子以获取更多信息。 - ReyAnthonyRenacia
1
你在普通版的Chrome中遇到这个错误,还是只有在Canary中?根据这个讨论,只有在DevTools打开时才会出现这个问题,他们的意见是这是Chrome的一个bug。 - mattsahr
我花了很长时间才发现这个问题,一直在想为什么我的进程(它们是调用工作线程的嵌套承诺)甚至会在上面停顿。对我来说,这似乎是不必要的行为。我在 Opera 45 中看到了它,所以我猜这是常见的 Chromium 引擎中的一个 bug。 - frumbert
在Chrome 98上出现了这个错误,之前没有遇到过 - 据我所知,不是代码更改导致了这个错误,而是Chrome 98的升级。 - danday74
在我的情况下,这个错误是由于无限循环而显示的,请检查您最近是否添加了循环,如果循环不是无限的,请检查您正在循环的数组是否在循环内更新(不应该更新)。 - Akshay Pagare
3个回答

9

2
也许这已经很晚了,也很显而易见,但你可以使用Chrome开发者工具中的“内存”选项卡,在加载/浏览应用程序时创建内存快照,以调查是什么在消耗你的内存(假设实际上是你的应用程序在消耗内存)。

3
这在理论上是好的...但当没有剩余内存时,就会出现错误。在内存选项卡上运行“堆快照”配置文件会崩溃,并显示“没有足够的内存打开此页面”。:( - Glen Little
同意。如果发生崩溃,Chrome的内存选项卡中的堆快照配置文件也无法加载。 - Hardik Patel

0
其他答案建议使用Chrome的Memory选项卡来进行快照。然而,当内存膨胀严重时,Chrome会在创建快照之前崩溃。
因此,另一种选择是使用操作系统来创建转储文件。在Windows上,打开任务管理器,展开Chrome进程>右键单击>创建转储文件。

enter image description here

可以使用不同的调试器(如WinDbg)来分析.dmp文件。这远远不及Chrome的Memory标签分析方便,但有时这是唯一的选择。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接