Когда я вручную выполняю сборщик мусора, как я могу узнать, когда он будет завершен?

Я пишу приложение веб-сервера с помощью NodeJS 6.3.0. приложение выполняется с параметром --expose-gc, поэтому я имею функцию global.gc(). вопрос в том, как я могу узнать, когда закончилось ручное выполнение сборщика мусора.

является global.gc() синхронной функцией, а это значит, что следующая строка кода будет выполнена, когда функция выполнит задание?

Можно ли каким-то образом отслеживать, когда завершилось мое конкретное выполнение сборщика мусора?

спасибо!

Ответ 1

Итак, я нашел этот ответ.

Если вы запустите процесс node с флагом -expose-gc, вы можете вызвать global.gc(), чтобы заставить node запускать сборку мусора. Имейте в виду, что все остальные действия в вашем приложении node приостановлены до тех пор, пока GC не завершится, поэтому не используйте его слишком часто или это не повлияет на производительность.

Это, также комментирует это.

Запуск global.gc() вручную (с поддержкой node --expose_gc) уменьшит использование памяти на 50 МБ каждый раз и приостанавливает приложение примерно на 400 мс.

Таким образом, он выглядит синхронно и блокируется до тех пор, пока он не будет завершен.