首页 > 解决方案 > 我的 javascript 代码抛出 FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

问题描述

我正在运行以下代码

var i = 0;
while (i != i + 1) {
    console.log(++i)
}

根据我的理解,我只使用一个变量,因此程序永远不会耗尽内存(不是很长一段时间),但几分钟后,它会抛出错误。

谁能帮我理解它为什么会这样

标签: javascriptnode.js

解决方案


这是由于 console.log 调用。流的垃圾收集不会立即激活。运行以下命令不会导致任何内存问题。当然,由于数字的大小,它最终会崩溃。但这将需要更长的时间。

var i = 0; while (i != i + 1) { i++; }

有关使用 console.log 进行内存管理的更多信息:https ://github.com/nodejs/help/issues/1339


推荐阅读