2016-07-07 10 views
12

私はNodeJS 6.3.0を使用してWebサーバーアプリケーションを作成しています。 アプリケーションは--expose-gcパラメータで実行されるため、global.gc()関数を使用できます。問題はガベージコレクタの手動実行がいつ完了したかを知る方法です。ガベージコレクタを手動で実行すると、完了したらどうすればわかりますか?

は同期関数global.gc()です。これは、関数がタスクを完了したときに次のコード行が実行されることを意味しますか?

ガベージコレクタの特定の実行が完了したら、何とか監視できますか?

ありがとうございました!

答えて

8

だから私はthis答えを見つけた。

--expose-gcフラグを指定してノードプロセスを起動すると、global.gc()を呼び出してノードにガベージコレクションを強制的に実行させることができます。ノードアプリケーション内の他のすべての実行は、GCが完了するまで一時停止されるため、頻繁に使用しないでください。そうしないとパフォーマンスに影響しません。

This 1つのコメントもあります。

ノード(--expose_gcで有効)を手動で実行すると、毎回50MBのメモリ使用量が削減され、約400msの間アプリケーションが一時停止されます。

したがって同期が完了して終了するまでブロックされているように見えます。

関連する問題