Node.JS событие сбора мусора? или --trace-gc в stderr? - PullRequest
5 голосов
/ 06 мая 2011

Как правило, когда я пишу сценарии, сообщения журнала всегда отправляются в stderr, а данные (сообщения о состоянии, результаты алгоритма и т. Д.) Отправляются в стандартный вывод.

Я бы хотел отправить это на stderr. Можно ли это сделать?

Было бы неплохо использовать свой собственный обработчик для какого-то события process.on('gc'), если оно есть. Есть ли один?

Сейчас я пишу некоторый код, где stdout зарезервирован для данных, и у меня нет выбора, кроме как отключить --trace-gc. Я использую memoryUsage() как вторую лучшую вещь, но она не сообщает об использовании непосредственно до и сразу после GC, она просто сообщает вам об использовании всякий раз, когда memoryUsage() вызывается.

1 Ответ

3 голосов
/ 11 мая 2011

Быстрая проверка исходного кода v8 (где живет сборщик мусора - [node src dir] /deps/v8/src/heap.cc и platform-posix.cc) показывает, что сообщения сбора мусора выводятся на консоль используя стандартный linux vprint () (из printf (3)), так что я почти уверен, что вы не сможете перехватить их без исправления исходного кода.

...