- Node.js 教程
- Node.js - 首頁
- Node.js - 簡介
- Node.js - 環境搭建
- Node.js - 第一個應用程式
- Node.js - REPL 終端
- Node.js - 命令列選項
- Node.js - 包管理器 (NPM)
- Node.js - 回撥函式概念
- Node.js - 上傳檔案
- Node.js - 傳送郵件
- Node.js - 事件
- Node.js - 事件迴圈
- Node.js - 事件發射器
- Node.js - 偵錯程式
- Node.js - 全域性物件
- Node.js - 控制檯
- Node.js - 程序
- Node.js - 應用程式擴充套件
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 緩衝區
- Node.js - 流
- Node.js - 檔案系統
- Node.js MySQL
- Node.js - MySQL 快速入門
- Node.js - MySQL 建立資料庫
- Node.js - MySQL 建立表
- Node.js - MySQL 插入資料
- Node.js - MySQL 查詢資料
- Node.js - MySQL 條件查詢
- Node.js - MySQL 排序
- Node.js - MySQL 刪除資料
- Node.js - MySQL 更新資料
- Node.js - MySQL 連線查詢
- Node.js MongoDB
- Node.js - MongoDB 快速入門
- Node.js - MongoDB 建立資料庫
- Node.js - MongoDB 建立集合
- Node.js - MongoDB 插入資料
- Node.js - MongoDB 查詢資料
- Node.js - MongoDB 查詢
- Node.js - MongoDB 排序
- Node.js - MongoDB 刪除資料
- Node.js - MongoDB 更新資料
- Node.js - MongoDB 資料限制
- Node.js - MongoDB 連線查詢
- Node.js 模組
- Node.js - 模組
- Node.js - 內建模組
- Node.js - 實用程式模組
- Node.js - Web 模組
- Node.js 有用資源
- Node.js - 快速指南
- Node.js - 有用資源
- Node.js - 討論
Node.js - V8 模組
Chrome V8 引擎是一個高效能的 JavaScript 引擎,它使用 C++編寫,並用於 Google Chrome。計算機只能理解機器語言,而不能理解 JavaScript 或 HTML 物件。
用 JavaScript 編寫的程式碼只能被瀏覽器理解,而不能被機器理解。因此,JS V8 引擎會將 JavaScript 程式碼轉換為機器可理解的語言,以便機器能夠理解它。
NodeJS V8 模組提供特定於 Node.js 二進位制檔案中內建的 V8 版本的 API。
包含 V8 模組
要包含 V8 模組,請在 Node.js 文件的開頭新增以下語法。
const v8 = require('v8')
V8 模組提供方法,可以使用 NodeJS 的 `v8.getHeapStatistics()` 方法和 `v8.getHeapSpaceStatistics()` 方法來獲取有關堆記憶體的資訊。讓我們透過合適的示例來了解它們。
列印 V8 堆的統計資訊
要列印 V8 堆的統計資訊,我們使用 NodeJS 的 `v8.getHeapStatistics()` 方法。
示例
const v8 = require('v8');
console.log(v8.getHeapStatistics());
輸出
{
total_heap_size: 5369856,
total_heap_size_executable: 524288,
total_physical_size: 4303400,
total_available_size: 17226376544,
used_heap_size: 2849672,
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 堆空間的統計資訊
要獲取 V8 堆空間的統計資訊,我們使用 NodeJS 的 `v8.getHeapSpaceStatistics()` 方法。
示例
const v8 = require('v8');
console.log(v8.getHeapSpaceStatistics());
輸出
[
{
space_name: 'read_only_space',
space_size: 262144,
space_used_size: 32808,
space_available_size: 0,
physical_space_size: 33088
},
{
space_name: 'new_space',
space_size: 2097152,
space_used_size: 649416,
space_available_size: 398040,
physical_space_size: 2088040
},
{
space_name: 'old_space',
space_size: 1916928,
space_used_size: 1582320,
space_available_size: 88312,
physical_space_size: 1584560
},
{
space_name: 'code_space',
space_size: 430080,
space_used_size: 155616,
space_available_size: 0,
physical_space_size: 172000
},
{
space_name: 'map_space',
space_size: 528384,
space_used_size: 308880,
space_available_size: 0,
physical_space_size: 309720
},
{
space_name: 'large_object_space',
space_size: 135168,
space_used_size: 131112,
space_available_size: 0,
physical_space_size: 135168
},
{
space_name: 'code_large_object_space',
space_size: 0,
space_used_size: 0,
space_available_size: 0,
physical_space_size: 0
},
{
space_name: 'new_large_object_space',
space_size: 0,
space_used_size: 0,
space_available_size: 1047456,
physical_space_size: 0
}
]
V8 模組方法
以下是V8 模組中可用方法的列表:
| 序號 | 模組和描述 |
|---|---|
| 1 |
用於檢索一個整數值,該值將表示 v8 版本、命令列標誌和檢測到的 CPU 功能的版本標籤。 |
| 2 |
用於檢索 v8 堆空間的統計資訊。 |
| 3 |
用於檢索從 v8 版本派生的堆的統計資訊 |
序列化 API 方法
以下是序列化 API中可用方法的列表:
| 序號 | 模組和描述 |
|---|---|
| 1 |
用於將任何資料型別序列化為緩衝區 |
| 2 |
用於將緩衝區值反序列化為 JavaScript 值。 |
序列化器方法
以下是v8.Serializer 類中可用方法的列表:
| 序號 | 模組和描述 |
|---|---|
| 1 |
用於將標頭寫入內部緩衝區。 |
| 2 |
用於序列化 JavaScript 值並將序列化的表示形式新增到內部緩衝區 |
| 3 |
用於檢索儲存在內部緩衝區中的值。 |
| 4 |
用於將原始 32 位無符號整數寫入內部緩衝區。 |
| 5 |
用於將原始 64 位無符號整數寫入內部緩衝區。 |
| 6 |
用於將 JavaScript 數字值寫入內部緩衝區。 |
| 7 |
用於將原始位元組寫入序列化器的內部緩衝區。 |
反序列化器方法
以下是v8.Deserializer 類中可用方法的列表:
| 序號 | 模組和描述 |
|---|---|
| 1 |
用於讀取和驗證內部緩衝區中的標頭。 |
| 2 |
用於反序列化寫入內部緩衝區的 JavaScript 值。 |
| 3 |
用於讀取原始 32 位無符號整數並返回它。 |
| 4 |
用於讀取原始 64 位無符號整數並將其作為包含其高位和低位值的陣列返回。 |
| 5 |
用於從反序列化器的內部緩衝區讀取原始位元組。 |
