nodejs v8.getHeapStatistics 方法

nodejs v8.getHeapStatistics method

在 nodejs v8 模块中,有一个名为 getHeapStatistics 的函数,其中 return 一个包含有关内存使用信息的对象:

{ 
  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 
}

每个字段的含义是什么?

V8 API documentation directly generated from the sources,但是HeapStatistics的细节就不解释了。

gc-heap-stats package 的一些很好的解释:

  • total_heap_size:V8 已分配给堆的字节数。如果 usedHeap 需要更多,它可以增长。
  • used_heap_size:应用程序数据使用的字节数
  • total_heap_size_executable:编译字节码和JITed代码的字节数
  • heap_size_limit:堆不能超过的绝对限制(默认限制或--max_old_space_size)
  • total_physical_size:承诺尺寸

来自Node.JS docs

  • does_zap_garbage 是一个 0/​​1 布尔值,表示 --zap_code_space 选项是否启用。这使得 V8 以位模式覆盖堆垃圾。 RSS 占用空间(驻留内存集)变得更大,因为它不断接触所有堆页面,这使得它们不太可能被操作系统换出。

自我描述:

  • total_available_size:可用堆大小
  • malloced_memory:当前内存量,通过malloc
  • 获得
  • peak_malloced_memory:内存峰值,通过malloc
  • 获得