禁用node.js垃圾回收一段时间

时间:2015-10-29 07:13:53

标签: javascript node.js garbage-collection v8

有没有办法在指定的时间段内显式禁用GC运行(至少是大多数耗时的运行,如旧空间中的GC中断),同时执行一些对延迟敏感的代码?像这样:

disableGc();
runCodeWithoutDelays();
enableGc();

可能使用某些节点选项或本机模块?或者我可以编写自己的模块,V8中是否有API?

2 个答案:

答案 0 :(得分:5)

据我所知,你不能手动停止v8的垃圾收集器,你唯一能做的就是手动启动gc进程global.gc()但不要停止v8' s过程

答案 1 :(得分:2)

另一个人有同样的问题,并在GitHub上发布了一个问题:https://github.com/nodejs/help/issues/462

答案是您无法在节点中禁用GC,但您可以通过使用--max_old_space_size, - max-semi-space-size来至少调整内存选项以使用可用的最大空间并延迟GC。

在上下文中提供了一个例子。