Из официальной документации ( источник ):
process.memoryUsage ()
Возвращает объект, описывающий использование памяти процессом Node, измеренное в байтах.
var util = require('util'); console.log(util.inspect(process.memoryUsage()));
Это сгенерирует:
{ rss: 4935680, heapTotal: 1826816, heapUsed: 650472 }
heapTotal и heapUsed относятся к использованию памяти V8.
Что именно означают rss , heapTotal и heapUsed ?
Это может показаться банальным вопросом, но я искал и пока не смог найти четкого ответа.
RSS - это размер резидентного набора , часть памяти процесса, хранящаяся в ОЗУ (в отличие от пространства подкачки или части, хранящейся в файловой системе).
Кучи представляет собой часть памяти , из которого вновь выделенные объекты будут поступать из (думать о
malloc
в С, илиnew
в JavaScript).Подробнее о куче можно прочитать в Википедии .
источник
heapTotal
иheapUsed
?heapTotal
- это общее выделенное пространство кучи базовым механизмом V8 для динамического распределения.heapUsed
- это память, используемая в этом общем пространстве. Оба управляются V8 и при необходимости могут увеличиваться / уменьшаться.Документация Node.js описывает это следующим образом:
Все указанные значения выражены в байтах. Итак, если вы просто хотите их распечатать, вы, вероятно, захотите масштабировать их до МБ:
Это даст вам следующий результат:
источник
Сделаем это на примере
В следующем примере показано, как увеличение использования памяти на самом деле увеличивает
rss
иheapTotal
Выполнение приведенного выше даст вам что-то вроде этого:
Это ясно показывает вам, как использование переменной и постоянное увеличение требуемого ей пространства увеличивает heapTotal и, соответственно, размер резидентного набора (
rss
)источник