Node.js - 分配失败 - 即使使用JSONStream解析器也会处理内存不足

时间:2014-11-04 14:19:28

标签: memory-management jsonstream

我正在尝试读取并解析节点中大约12个大的(范围从100mb +到500mb +)JSON文件。我尝试使用JSONStream(正如许多其他人的建议作为此问题的解决方案)来防止以下错误:

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

但是,我仍然收到此错误。这是我第一次尝试使用这样的流媒体文件阅读器,所以我不确定会出现什么问题。现在,我的代码是:

for (var i = 0; i < jsonFileArray.length; i++) {
    if (jsonFileArray[i].match(/\.json$/)) {
        var stream = fs.createReadStream(dirPath + jsonFileArray[i]).pipe(JSONStream.parse(['records', true, 'Categories']));

      stream.on('data', function(data) {
          console.log('received:', data);
        });
    }
}

最终我想用这些文件中的所有解析数据构建一个累积结果对象,但到目前为止,我所尝试的一切都阻止了我能够解析任何和所有文件。建议?指导?

1 个答案:

答案 0 :(得分:0)

您可以尝试&#34;内存泄漏&#34;来自JSONStream存储库的分支。这个分支修复了内存泄漏,但你无法使用&#34; ..&#34;操作

Link to the branch