在本教程中,您可以通过实例学习nodejs的v8模块中的getHeapStatistics 方法。
这包括如何从javascript代码中找到以下内容
- 如何从代码中获取max_old_space_size的值?
- 获取nodejs应用程序的最大堆尺寸
- 检索字符串对象的堆内存
- 总可用空间大小
- max-old-space-size
V8是Nodejs环境内部使用的一个引擎。你可以查看V8的版本以及Nodejs的32位或64位。
有时,为了调试节点内存不足的错误,我们需要知道环境和应用程序的堆栈大小。为了获得上述所有信息,Nodejs有一个内置的模块v8 ,它有一个内置的getHeapStatistics ,以获得整个系统中运行的应用程序的堆内存的统计信息。
V8还有一个方法[getHeapSpaceStatistics](/nodejs-v8-getheapspacestatistics-method) ,用于统计系统中的空间信息。
语法:
getHeapStatistics()
它返回一个具有以下属性的对象
total_heap_size:分配的总堆大小,以字节为单位,如果 配置,它就会增加。used_heap_sizetotal_heap_size_executable:为编译字节代码分配的堆大小,以字节为单位。total_physical_size:硬盘的总可用大小total_available_size:总的可用堆大小heap_size_limit:堆大小的限制,默认值为max_old_space_size。used_heap_size: 以字节为单位分配给应用程序的堆大小malloced_memory:当前已分配的内存peak_malloced_memory: 峰值分配的内存does_zap_garbage: 设置为0或1,表示 选项已启用或未启用。zap_code_spacenumber_of_native_contexts: 活跃的顶层本地上下文number_of_detached_contexts: 未被垃圾收集的分离上下文
这将提供有用的堆信息
v8 getHeapStatistics方法示例。
首先使用ES5语法中的require 关键字导入v8模块。
const v8 = require('v8');
Here is an code for v8 getHeapStatistics example
info.js
```javascript
const v8module = require('v8');
console.log(v8module.getHeapStatistics());
在命令行中用node命令运行info.js
它输出一个对象
{
total_heap_size: 4468736,
total_heap_size_executable: 524288,
total_physical_size: 4468736,
total_available_size: 4342053000,
used_heap_size: 2851944,
heap_size_limit: 4345298944,
malloced_memory: 8192,
peak_malloced_memory: 123168,
does_zap_garbage: 0,
number_of_native_contexts: 1,
number_of_detached_contexts: 0
}
总结
你学会了nodejs应用程序中v8模块的getHeapStatistics方法。它提供了nodejs应用程序以及整个环境的堆统计信息。