Метод nodejs v8.getHeapStatistics

В модуле nodejs v8 существует функция, называемая getHeapStatistics, которая возвращает объект, содержащий информацию об использовании памяти:

{ 
  total_heap_size: 221540352,
  total_heap_size_executable: 5242880,
  total_physical_size: 221540352,
  total_available_size: 1286110104,
  used_heap_size: 189179192,
  heap_size_limit: 1501560832,
  malloced_memory: 16384,
  peak_malloced_memory: 1325112,
  does_zap_garbage: 0 
}

Какое значение имеет каждое поле?

Ответы

Ответ 2

Некоторое хорошее объяснение от пакет gc-heap-stats:

  • total_heap_size: количество байтов V8, выделенных для кучи. Это может расти, если usedHeap нуждается в большем количестве.
  • used_heap_size: количество байтов, используемых данными приложения.
  • total_heap_size_executable: количество байтов для скомпилированного байт-кода и JIT-кода
  • heap_size_limit: абсолютный предел кучи не может превышать (предел по умолчанию или --max_old_space_size)
  • total_physical_size: Committed size

Из Node.JS docs:

  • do_zap_garbage - это логическое значение 0/1, которое означает, что опция -zap_code_space включена или нет. Это заставляет V8 перезаписывать кучу мусора с битовой структурой. Объем RSS-памяти (набор резидентных памяти) увеличивается, потому что он постоянно затрагивает все страницы кучи и делает их менее вероятными, чтобы их поменяла операционная система.

Автопортрет:

  • total_available_size: Доступный размер кучи
  • malloced_memory: текущий объем памяти, полученный через malloc
  • peak_malloced_memory: максимальный объем памяти, полученный через malloc