首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误: CALL_AND_RETRY_2分配失败-处理js时内存不足。

致命错误: CALL_AND_RETRY_2分配失败-处理js时内存不足。
EN

Stack Overflow用户
提问于 2014-08-06 07:20:20
回答 1查看 4.5K关注 0票数 1

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

代码语言:javascript
复制
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')
})

(预先谢谢:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-06 19:55:49

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25154423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档