javascript - 我的 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)
}
根据我的理解,我只使用一个变量,因此程序永远不会耗尽内存(不是很长一段时间),但几分钟后,它会抛出错误。
谁能帮我理解它为什么会这样
解决方案
这是由于 console.log 调用。流的垃圾收集不会立即激活。运行以下命令不会导致任何内存问题。当然,由于数字的大小,它最终会崩溃。但这将需要更长的时间。
var i = 0;
while (i != i + 1) {
i++;
}
有关使用 console.log 进行内存管理的更多信息:https ://github.com/nodejs/help/issues/1339
推荐阅读
- bash - 使用 bash 脚本在不同列中打印多个不同大小的数组
- java - Eclipse:Eclipse 启动器无法找到它的配套共享库
- php - Laravel 将 Model Save() 移动到方法内部
- python - 使用 Pymodbus 从 SMA 集群控制器获取数据
- google-oauth - Google 登录:令牌已过期
- sqlite - 尝试创建/恢复数据库备份时出错
- php - Dropzone getAcceptedFiles() 产生 [object File] 而不是 file
- apache - 当某些字符串在url中时如何重定向到主页
- javascript - 使用 PHP 计算内联宽度会破坏图像轮播 (Flickity)
- bash - 为什么-d在空变量上返回true