FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory when processing large files with fs
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory when processing large files with fs
我有一个 nodeJs 脚本可以处理一堆大的 .csv 文件(全部 1.3GB)。它 运行 片刻并抛出此错误:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
我尝试将 #!/usr/bin/env node --max-old-space-size=4096
放在文件的开头,但这并没有解决我的问题...
尝试 google 但几乎没有关于我的问题的相关信息..
我可以在不需要文件内容时刷新内存吗?我是否需要为 nodeJs 分配更多内存?
谢谢 ;)
这是我的代码示例:
fs.readdir(dirName, function(err, filenames) {
if (err) console.error(err);
else {
filenames.forEach(function(filename) {
fs.readFile(dirName + filename, 'utf-8', function(err, content) {
if (err) console.error(err);
else processFile(content);
});
});
}
});
我终于找到了解决问题的方法!我需要启动将 --max-old-space-size=8192
参数添加到节点进程的进程,如下所示:
node --max-old-space-size=8192 ./myScript.js
我毫无问题地处理了我的 1.3GB !!
您可以通过 运行 在 运行 Snyk 之前使用以下命令来增加分配给该命令的内存量:
Linux/macOS
导出NODE_OPTIONS=--max-old-space-size=8192
例如:
导出NODE_OPTIONS=--max-old-space-size=8192
测试
导出 NODE_OPTIONS=--max-old-space-size=8192
snyk 监视器
Windows
从控制面板转到系统 -> 高级系统设置 -> 环境变量 -> 新建(用户或系统)
我有一个 nodeJs 脚本可以处理一堆大的 .csv 文件(全部 1.3GB)。它 运行 片刻并抛出此错误:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
我尝试将 #!/usr/bin/env node --max-old-space-size=4096
放在文件的开头,但这并没有解决我的问题...
尝试 google 但几乎没有关于我的问题的相关信息..
我可以在不需要文件内容时刷新内存吗?我是否需要为 nodeJs 分配更多内存?
谢谢 ;)
这是我的代码示例:
fs.readdir(dirName, function(err, filenames) {
if (err) console.error(err);
else {
filenames.forEach(function(filename) {
fs.readFile(dirName + filename, 'utf-8', function(err, content) {
if (err) console.error(err);
else processFile(content);
});
});
}
});
我终于找到了解决问题的方法!我需要启动将 --max-old-space-size=8192
参数添加到节点进程的进程,如下所示:
node --max-old-space-size=8192 ./myScript.js
我毫无问题地处理了我的 1.3GB !!
您可以通过 运行 在 运行 Snyk 之前使用以下命令来增加分配给该命令的内存量:
Linux/macOS
导出NODE_OPTIONS=--max-old-space-size=8192 例如:
导出NODE_OPTIONS=--max-old-space-size=8192 测试 导出 NODE_OPTIONS=--max-old-space-size=8192 snyk 监视器
Windows
从控制面板转到系统 -> 高级系统设置 -> 环境变量 -> 新建(用户或系统)