为什么 'malloced_memory' 比 Node.js 中的 'used_heap_size' 低?
Why is 'malloced_memory' lower than 'used_heap_size' in Node.js?
在 v8.getHeapStatistics()
的 every example 中,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
是 KB 而 used_heap_size
是 B):
malloced_memory
:从 OS 获取的总内存(需要创建 V8 堆,存储 Buffer
s 等)。
used_heap_size
:V8堆上所有对象的总大小(包括未收集的垃圾)。
(此处为 V8 开发人员。)
托管堆的内存是 mmap
ed,而不是 malloc
ed,因此它不应是一个子集。
在 v8.getHeapStatistics()
的 every example 中,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
是 KB 而 used_heap_size
是 B):
malloced_memory
:从 OS 获取的总内存(需要创建 V8 堆,存储Buffer
s 等)。used_heap_size
:V8堆上所有对象的总大小(包括未收集的垃圾)。
(此处为 V8 开发人员。)
托管堆的内存是 mmap
ed,而不是 malloc
ed,因此它不应是一个子集。