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

ufk*_*ufk 15 garbage-collection node.js

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

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

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

谢谢!

car*_*ase 11

所以我找到了这个答案.

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

也是对它的评论.

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

所以看起来它是同步的并且在它完成之前就会阻塞.