Метод 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
}
Какое значение имеет каждое поле?
Ответы
Ответ 1
Здесь Документация V8 API, напрямую созданная из источников, но детали HeapStatistics не объясняются.
Ответ 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