• Node.js Video Tutorials

NodeJS v8.getHeapSpaceStatistics() 方法



NodeJS v8.getHeapSpaceStatistics() 方法 返回 v8 堆空间的统计信息。此方法将统计信息作为对象数组返回,例如新空间、旧空间、代码空间、映射空间和大对象空间。每个对象都包含有关空间名称、空间大小、已使用空间大小、可用空间大小和物理空间大小的数据。

语法

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

v8.getHeapSpaceStatistics()

参数

此方法不接受任何参数。

返回值

此方法返回一个包含 v8 堆空间统计信息的对象数组。

返回的对象数组中包含以下属性:

  • space_name - 这是一个字符串,指定堆空间的名称。

  • space_size - 这是一个数字,指定堆空间的大小。

  • space_used_size - 这是一个数字,指定已使用堆空间的大小。

  • space_available_size - 一个数字,指定可用堆空间的大小。

  • physical_space_size - 一个数字,指定物理堆空间的大小。

示例

在以下示例中,我们尝试使用 NodeJS v8.getHeapSpaceStatistics() 方法获取 v8 堆空间的统计信息。

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

输出

执行上述程序后,NodeJS getHeapSpaceStatistics() 方法返回一个包含有关 v8 堆空间属性的对象数组。

Statistics of v8 heap space: 
[ 
   {
      space_name: 'new_space',
      space_size: 2097152,
      space_used_size: 653080,
      space_available_size: 378088,
      physical_space_size: 2059736 
   },
   { 
      space_name: 'old_space',
      space_size: 2396160,
      space_used_size: 2295248,
      space_available_size: 168,
      physical_space_size: 2338768 
   },
   { 
      space_name: 'code_space',
      space_size: 1048576,
      space_used_size: 572736,
      space_available_size: 0,
      physical_space_size: 605504 
   },
   { 
      space_name: 'map_space',
      space_size: 544768,
      space_used_size: 288160,
      space_available_size: 0,
      physical_space_size: 305568 
   },
   { 
      space_name: 'large_object_space',
      space_size: 0,
      space_used_size: 0,
      space_available_size: 17206803968,
      physical_space_size: 0 
   } 
]

示例

在以下示例中,我们尝试以表格形式打印有关堆空间的统计信息。

const v8 = require('v8');
let statistics = v8.getHeapSpaceStatistics();
var EmpArr = []
for (var i = 0; i < statistics.length; i++){    
   var element = statistics[i];  
   EmpArr.push({ "Space Name": element['space_name'], 
   "Space Size": element['space_size'], 
   "Used Space Size": element['space_used_size'], 
   "Space Available": element['space_available_size'], 
   "Physical Space Size":element['physical_space_size'] },);
}
console.table(EmpArr)

输出

┌─────────┬───────────────────────────┬────────────┬─────────────────┬─────────────────┬─────────────────────┐
│ (index) │        Space Name         │ Space Size │ Used Space Size │ Space Available │ Physical Space Size │
├─────────┼───────────────────────────┼────────────┼─────────────────┼─────────────────┼─────────────────────┤
│    0    │     'read_only_space'     │   262144   │      32808      │        0        │        33088        │
│    1    │        'new_space'        │  2097152   │     649048      │     398408      │       2088064       │
│    2    │        'old_space'        │  1916928   │     1582912     │      88736      │       1585152       │
│    3    │       'code_space'        │   430080   │     155616      │        0        │       172000        │
│    4    │        'map_space'        │   528384   │     308800      │        0        │       309640        │
│    5    │   'large_object_space'    │   135168   │     131112      │        0        │       135168        │
│    6    │ 'code_large_object_space' │     0      │        0        │        0        │          0          │
│    7    │ 'new_large_object_space'  │     0      │        0        │     1047456     │          0          │
└─────────┴───────────────────────────┴────────────┴─────────────────┴─────────────────┴──────────────────────

注意 - 为了更好地理解,让我们在本地执行上述代码。

执行上述代码后,getHeapSpaceStatistics() 方法返回 5 个对象数组,例如新空间、旧空间、代码空间、映射空间和大对象空间。

V8 Getheapspacestatistics
nodejs_v8_module.htm
广告