我有一个 nodeJs 脚本可以处理一堆大的 .csv 文件(全部 1.3GB)。它运行了一会儿并抛出了这个错误:
fatal error :堆限制附近的无效标记压缩分配失败 - JavaScript 堆内存不足
我尝试将 #!/usr/bin/env node --max-old-space-size=4096
放在文件的开头,但这并没有解决我的问题。 ..
尝试用谷歌搜索,但几乎没有关于我的问题的相关信息..
我可以在不需要文件内容时刷新内存吗?我需要为 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 进程的进程,如下所示:
node --max-old-space-size=8192 ./myScript.js
我毫无问题地处理了我的 1.3GB !!
关于javascript - fatal error : Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory when processing large files with fs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54137165/