• Node.js Video Tutorials

NodeJS - v8.getHeapStatistics() 方法



NodeJS v8.getHeapStatistics() 方法用于检索从 v8 版本派生的堆统计信息。此方法返回有关堆的统计信息,例如总堆大小、已用堆大小、堆大小限制、总可用大小等。

getHeapSpaceStatistics() 返回基于系统空间的统计信息,而 getHeapStatistics() 方法检索整个系统的统计信息。

语法

以下是 NodeJS v8.getHeapStatistics() 方法 的语法:

v8.getHeapStatistics()

参数

此方法不接受任何参数。

返回值

此方法返回一个包含从 v8 派生的堆统计信息的 对象。

以下是返回对象中包含的属性。

  • total_heap_size - 此属性指定总堆空间大小。

  • total_heap_size_executable - 此属性指定可用于执行的总堆大小。

  • total_physical_size - 此属性指定磁盘上可用的总物理大小。

  • total_available_size - 此属性指定系统可用的总大小。

  • used_heap_size - 此属性指定已使用的堆大小。

  • heap_size_limit - 此属性指定用户/应用程序的堆大小限制。

  • malloced_memory - 此属性指定分配给应用程序的内存。

  • peak_malloced_memory - 此属性指定应用程序可用的最大内存限制。

  • does_zap_garbage - 这是一个布尔值 0/1,它告诉系统是否启用了 --zap_code_space 选项。

  • number_of_native_contexts - 这是当前活动的最顶层上下文数。此数字增加表明可能存在内存泄漏。

  • number_of_detached_contexts - 这些是由垃圾收集器分离但尚未收集的上下文数。如果此数字不为零,则表示潜在的内存泄漏。

示例

在以下示例中,我们尝试使用 NodeJS getHeapStatistics() 方法获取从 v8 派生的所有堆统计信息。

const v8 = require('v8');
console.log(v8.getHeapStatistics());

输出

{
   total_heap_size: 5369856,
   total_heap_size_executable: 524288,
   total_physical_size: 4298984,
   total_available_size: 17226372488,
   used_heap_size: 2855168,
   heap_size_limit: 17230200832,
   malloced_memory: 8192,
   peak_malloced_memory: 418904,
   does_zap_garbage: 0,
   number_of_native_contexts: 1,
   number_of_detached_contexts: 0
}

示例

在下面的示例中,我们尝试获取 v8 堆的统计信息,例如总堆大小、已用堆大小和堆大小限制。

const v8 = require('v8');
let statistics = v8.getHeapStatistics();
console.log("total_heap_size: " + statistics['total_heap_size']);
console.log("used_heap_size: " + statistics['used_heap_size']);
console.log("heap_size_limit: " + statistics['heap_size_limit']);

输出

total_heap_size: 6086656
used_heap_size: 3769624
heap_size_limit: 17213423616
does_zap_garbage: 0
nodejs_v8_module.htm
广告