process.memoryUsage()
- 返回: <Object>
例如代码:
console.log(process.memoryUsage());
{
rss: 4935680,
heapTotal: 1826816,
heapUsed: 650472,
external: 49879,
arrayBuffers: 9386
}
heapTotal
和heapUsed
指的是 V8 的内存使用量。external
指的是绑定到 V8 管理的 JavaScript 对象的 C++ 对象的内存使用量。rss
,常驻集大小,是进程在主内存设备(即总分配内存的子集)中占用的空间量,包括所有 C++ 和 JavaScript 对象和代码。arrayBuffers
是指为ArrayBuffer
和SharedArrayBuffer
分配的内存,包括所有 Node.jsBuffer
。 这也包含在external
值中。 当 Node.js 被用作嵌入式库时,此值可能为0
,因为在这种情况下可能不会跟踪ArrayBuffer
的分配。
当使用 Worker
线程时,则 rss
将是对整个进程都有效的值,而其他字段仅涉及当前线程。
- Returns: <Object>
The process.memoryUsage()
method returns an object describing the memory usage
of the Node.js process measured in bytes.
For example, the code:
console.log(process.memoryUsage());
Will generate:
{
rss: 4935680,
heapTotal: 1826816,
heapUsed: 650472,
external: 49879,
arrayBuffers: 9386
}
heapTotal
andheapUsed
refer to V8's memory usage.external
refers to the memory usage of C++ objects bound to JavaScript objects managed by V8.rss
, Resident Set Size, is the amount of space occupied in the main memory device (that is a subset of the total allocated memory) for the process, including all C++ and JavaScript objects and code.arrayBuffers
refers to memory allocated forArrayBuffer
s andSharedArrayBuffer
s, including all Node.jsBuffer
s. This is also included in theexternal
value. When Node.js is used as an embedded library, this value may be0
because allocations forArrayBuffer
s may not be tracked in that case.
When using Worker
threads, rss
will be a value that is valid for the
entire process, while the other fields will only refer to the current thread.