当我编写逐行读取 70mb 文件并处理的递归程序时。我正在使用递归来处理该行。这是我的代码
function readFile(response, postData){
var instream = fs.createReadStream('filePath');
var datmap={};
var rl = readline.createInterface({
input: instream,
output: outstream,
terminal: false
});
rl.on('line', function(line) {
hirarchyFun(datmap,line);
});
}
hirarchyFun=function(map,line){
var key;
if(line.indexOf(",") != -1){
key=line.substring(0,line.indexOf(","));
var subLine=line.substring((key.length+1));
var internMap=map[key];
if(typeof internMap == 'undefined'){
internMap={};
}
var value=hirarchyFun(internMap,subLine);
map[key]=value;
return map;
}else{
return line;
}
}
当我读取大约 70mb 的文件时,会出现错误
FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory
但它适用于大约 700kb 的文件。任何人都可以帮助解决这个问题吗?