Как я могу отслеживать использование памяти Node.js?
javascript
node.js
memory
fsiaonma
источник
источник
Ответы:
node-memwatch : обнаруживайте и находите утечки памяти в коде Node.JS. Проверьте это руководство по отслеживанию утечек памяти в Node.js
источник
Во встроенном модуле процесса есть метод,
memoryUsage
который позволяет получить представление об использовании памяти текущим процессом Node.js. Вот пример из Node v0.12.2 в 64-битной системе:В этом простом примере вы можете увидеть, что при выделении массива из 10 миллионов элементов-потребителей примерно 80 МБ (взгляните на
heapUsed
).Если вы посмотрите на исходный код V8 ( в
Array::New
,Heap::AllocateRawFixedArray
,FixedArray::SizeFor
), то вы увидите , что память используется массив является фиксированное значение плюс длина умножается на размер указателя. Последний составляет 8 байт в 64-битной системе, что подтверждает, что наблюдаемая разница памяти в 8 x 10 = 80 МБ имеет смысл.источник
--expose-gc
для этойgc
функции?--expose-gc
дляprocess.memoryUsage()
.gc()
(Требование--expose-gc
) использовалось в ответе для детерминированного запуска сборки мусора, чтобы упростить просмотрprocess.memoryUsage
отчетов.Кроме того, если вы хотите знать глобальную память, а не процесс узла:
См. Документацию
источник
Оригинальный memwatch практически мертв. Вместо этого попробуйте memwatch-next , который, похоже, хорошо работает в современных версиях Node.
источник
В Linux / Unix (примечание: Mac OS - это Unix) используйте
top
и нажмите M ( Shift+ M), чтобы отсортировать процессы по использованию памяти.В Windows используйте диспетчер задач.
источник
Applications > Utilities
и вы найдетеActivity Monitor
приложение. Это эквивалент диспетчера задач. OS X также имеетtop
команду.htop
вместо top в Linux. Это гораздо лучше.