• 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
廣告