Что такое глобальные дескрипторы и корни GC в Инспекторе кучи Node js? - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь проверить кучу запущенного приложения экспресс-узла js.

При сравнении дампа кучи похоже, что некоторые строки не освобождаются.Обещания, к которым они привязаны, выполнены, но цепочка Retainers переходит к глобальным маркерам, а затем к корням GC.Я не понимаю, что это значит.

Может кто-то пролить свет на это?Почему GC не может собрать эти разрешенные обещания?

node js heap snapshot

1 Ответ

0 голосов
/ 03 февраля 2019

Узел содержит ссылку на каждое обещание, созданное при включении async_hooks, и на обещания, которые были отклонены для отображения необработанных предупреждений об отклонении.

PromiseWrap - это то, что использует async_hooks, и этот случайный массив представляет собой массив, которыйиспользует необработанное отслеживание отклонений.

Обратите внимание, что необработанное отслеживание отклонений не может быть отключено :(, но вы можете быть уверены, что они очищены ответственно.

...