在启动时,似乎我的node.js应用程序使用了大约200MB的内存。如果我搁置一段时间,它会缩小到9MB左右。
是否可以从应用程序内执行以下操作:
我问的原因是,我从磁盘加载了一些文件,这些文件是临时处理的。这可能导致内存使用量激增。但是我不希望在GC运行之前加载更多文件,否则存在内存不足的风险。
有什么建议 ?
如果使用该--expose- gc标志启动节点进程,则可以调用global.gc()强制节点运行垃圾回收。请记住,在GC完成之前,节点应用程序中的所有其他执行都将暂停,因此请不要过于频繁地使用它,否则会影响性能。
--expose- gc
global.gc()
在从代码内进行GC调用时,您可能需要包括一个检查,这样如果在没有标志的情况下运行node,事情不会变坏:
try { if (global.gc) {global.gc();} } catch (e) { console.log("`node --expose-gc index.js`"); process.exit(); }