当我手动执行垃圾收集器时,如何判断它何时完成?

时间:2016-07-07 09:23:58

标签: node.js garbage-collection

我正在使用NodeJS 6.3.0编写Web服务器应用程序。 应用程序使用--expose-gc参数执行,因此我可以使用global.gc()函数。问题是如何知道垃圾收集器的手动执行何时完成。

是global.gc()一个同步函数,这意味着当函数完成任务时会执行下一行代码吗?

我可以以某种方式监视垃圾收集器的具体执行何时完成?

谢谢!

1 个答案:

答案 0 :(得分:10)

所以我找到this回答。

  

如果使用--expose-gc标志启动节点进程,则可以调用global.gc()强制节点运行垃圾回收。请注意,节点应用中的所有其他执行都会暂停,直到GC完成,因此不要经常使用它,否则会影响性能。

This也有一条评论。

  

手动运行global.gc()(使用节点--expose_gc启用)每次会减少50MB的内存使用量,并暂停应用程序约400ms。

所以看起来它是同步的并阻塞直到它完成。