Nodejs教程-Node.js V8

什么是 V8
V8 是由 Chromium 项目为 Google Chrome 浏览器开发的开源 JavaScript 引擎。它是用 C++ 编写的,现在广泛应用于许多项目,如 Couchbase、MongoDB 和 Node.js。
Node.js 中的 V8
Node.js 的 V8 模块表示与 V8 引擎版本相关的接口和事件。它提供了一些方法来通过 v8.getHeapStatistics() 和 v8.getHeapSpaceStatistics() 获取有关堆内存的信息。
要使用此模块,你需要使用 require('v8')。
const v8 = require('v8');
Node.js v8.getHeapStatistics() 示例
v8.getHeapStatistics() 方法返回有关堆的统计信息,例如总堆大小、已使用的堆大小、堆大小限制、总可用大小等。
const v8 = require('v8');
console.log(v8.getHeapStatistics());
Node.js v8.getHeapSpaceStatistics() 示例
v8.getHeapSpaceStatistics() 方法返回有关堆空间的统计信息。它返回一个包含 5 个对象的数组:new space、old space、code space、map space 和 large object space。每个对象包含空间名称、空间大小、已使用空间大小、可用空间大小和物理空间大小的信息。
const v8 = require('v8');
console.log(v8.getHeapSpaceStatistics());
Node.js 中 V8 的内存限制
目前,V8 在 32 位系统上默认具有 512mb 的内存限制,在 64 位系统上为 1gb。你可以通过设置 --max-old-space-size 参数来提高限制,最大可以达到 ~1gb(32 位系统)和 ~1.7gb(64 位系统)。但如果你遇到内存限制,建议将单个进程拆分为多个 worker 进程。