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
}
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
used_heap_size: 3769624
heap_size_limit: 17213423616
does_zap_garbage: 0