首页 > 解决方案 > 为什么 Node.js 中的“malloced_memory”低于“used_heap_size”?

问题描述

每个示例中似乎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在 KB 中并且used_heap_size在 B 中):

标签: node.jsmallocheap-memoryv8

解决方案


(这里是 V8 开发人员。)

托管堆的内存是mmaped,而不是malloced,因此它不应该是一个子集。


推荐阅读