致命错误:CALL_AND_RETRY_2分配失败-进程在预处理我的js字段时内存不足

FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory in preprocessing my js fiels

本文关键字:我的 预处理 js 字段 内存不足 进程 失败 AND CALL RETRY 致命错误      更新时间:2023-09-26

我正在尝试为每个平台预处理我的js文件,并使用我的js-preprocess.js来美化它。我能够处理多达153个文件。如果文件数量增加,控制台将显示以下错误!致命错误:CALL_AND_RETRY_2分配失败-进程内存不足请帮我解决这个问题!这是我的一个代码片段的主要工作!

fs.readdir(inputdir,function(err,files) {
     console.time('PreProcessingJStime')
    files.forEach(function(file) {
        if (file.indexOf(".js") != -1) {
            console.log('PreProcessing JS File : '+file);
            fs.writeFile(outputdir+"/"+file,beautify.js_beautify(preprocess(fs.readFileSync(inputdir+"/"+file,'utf-8'),defines).join(''n'),{preserve_newlines:false}));
        }
    },this);
    console.timeEnd('PreProcessingJStime')
})

提前感谢:)

您使用的是异步的fs.writeFile。这意味着您同时写入所有文件,并且写入所需的所有数据都缓冲在内存中。如果您将其更改为fs.writeFileSync,那么它将在移动到下一个文件之前完成一个文件,并且与先前文件有关的所有数据都将成为垃圾,因此垃圾收集器将在需要时获取它。