#node.js #malloc #heap-memory #v8
Вопрос:
В каждом примере v8.getHeapStatistics()
malloced_memory
, по-видимому, ниже, чем used_heap_size
:
{
total_heap_size: 7326976,
total_heap_size_executable: 4194304,
total_physical_size: 7326976,
total_available_size: 1152656,
used_heap_size: 3476208,
heap_size_limit: 1535115264,
malloced_memory: 16384,
peak_malloced_memory: 1127496,
does_zap_garbage: 0,
number_of_native_contexts: 1,
number_of_detached_contexts: 0
}
Как может malloced_memory
быть ниже, чем used_heap_size
? Разве это не used_heap_size
подмножество malloced_memory
?
Мои предположения (очевидно, неверные, если malloced_memory
только они не в КБ и used_heap_size
не в B):
malloced_memory
: общая память, полученная от ОС (необходимая для создания кучи V8, храненияBuffer
s и т. Д.).used_heap_size
: общий размер всех объектов в куче V8 (включая не собранный мусор).
Ответ №1:
(Разработчик V8 здесь.)
Память для управляемой кучи-это mmap
ed, а не malloc
ed, поэтому не ожидается, что она будет подмножеством.