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