禁用node.js垃圾回收一段时间
在执行一些对延迟敏感的代码时,是否有任何方法可以在指定的时间段内明确禁用GC运行(至less大部分耗时的运行,比如旧空间中的GC中断)? 像这样的东西:
disableGc(); runCodeWithoutDelays(); enableGc();
大概使用一些节点选项,或本地模块? 或者我可以编写自己的模块,V8中是否有API?
据我所知,你不能手动停止v8的垃圾收集器,你可以做的唯一的事情是启动gc过程手动运行global.gc()
但不停止v8的过程。
另一个人有同样的问题,并在GitHub上发布了一个问题: https : //github.com/nodejs/help/issues/462
答案是你不能禁用节点中的GC,但是你至less可以调整内存选项来使用最大可用空间并延迟GC,通过使用–max_old_space_size,–max-semi-space-size。
上下文中提供了一个例子。