📜  Node.js v8.getHeapStatistics() 方法

📅  最后修改于: 2022-05-13 01:56:49.092000             🧑  作者: Mango

Node.js v8.getHeapStatistics() 方法

v8.getHeapStatistics() 方法是 v8 模块的内置应用程序编程接口,用于获取从 v8 版本派生的堆的统计信息。

句法:

v8.getHeapStatistics();

参数:此方法没有任何参数。

返回值:此方法返回一个包含有关版本 8 堆的统计信息的对象。返回的对象通常包含一个数组,该数组由以下字段组成:

  • total_heap_size :一个数字,表示总堆大小。
  • total_heap_size_executable :一个数字,表示总可执行堆大小。
  • total_physical_size :一个数字,表示总物理大小。
  • total_available_size :一个数字,表示总可用大小。
  • used_heap_size :一个数字,表示使用的堆大小。
  • heap_size_limit :一个数字,表示堆大小限制。
  • malloced_memory :一个数字,表示分配的内存。
  • peak_malloced_memory :一个数字,表示最大 malloced 内存。
  • dos_zap_garbage :一个数字,特别是布尔值,表示是否启用了 –zap_code_space 选项。
  • number_of_native_contexts :一个数字,表示许多本机上下文或当前活动的顶级上下文。内存泄漏可能通过测量此数字随时间的增量来指示。
  • number_of_detached_contexts :一个数字,表示许多分离的上下文或已分离但尚未被垃圾收集的上下文。如果它具有非零值,则可能指示内存泄漏。

下面的示例说明了在 Node.js 中使用 v8.getHeapStatistics() 方法。

示例 1:文件名:index.js

// Accessing v8 module
const v8 = require('v8');
  
// Calling v8.getHeapStatistics() 
console.log(v8.getHeapStatistics());

使用以下命令运行index.js文件:

node index.js

输出:

{ total_heap_size: 6537216,
  total_heap_size_executable: 1048576,
  total_physical_size: 6537216,
  total_available_size: 1520717240,
  used_heap_size: 4199600,
  heap_size_limit: 1526909922,
  malloced_memory: 8192,
  peak_malloced_memory: 406408,
  does_zap_garbage: 0 }

示例 2:文件名:index.js

// Accessing v8 module
const v8 = require('v8');
  
// Calling v8.getHeapStatistics() 
stats = v8.getHeapStatistics();
console.log("Heap Stastistics are :");
  
console.log("total_heap_size:"+stats['total_heap_size']);
console.log("used_heap_size:"+stats['used_heap_size']);
console.log("heap_size_limit:"+stats['heap_size_limit']);
console.log("does_zap_garbage:"+stats['does_zap_garbage']);

使用以下命令运行index.js文件:

node index.js

输出:

Heap Stastistics are :
total_heap_size:6537216
used_heap_size:4200640
heap_size_limit:1526909922
does_zap_garbage:0

参考: https://nodejs.org/api/v8.html#v8_v8_getheapstatistics