内存数据
2024年12月20日
提示
在 Node.js
中,可以通过内置的 process
对象和一些系统工具库来获取与内存相关的数据和指标,
一、os
二、v8
三、pidusage
四、process.memoryUsage()
4.1 认识
process.memoryUsage()
是 Node.js
提供的 API
,用于返回关于 Node.js
进程内存使用情况的详细信息。
4.2 语法
const memoryUsage = process.memoryUsage();
console.log("内存使用情况:");
console.log(`rss: ${memoryUsage.rss / 1024 / 1024} MB`); // 驻留集大小(Resident Set Size)
console.log(`heapTotal: ${memoryUsage.heapTotal / 1024 / 1024} MB`); // 堆总大小
console.log(`heapUsed: ${memoryUsage.heapUsed / 1024 / 1024} MB`); // 已使用的堆大小
console.log(`external: ${memoryUsage.external / 1024 / 1024} MB`); // V8 引擎管理的 C++ 对象占用的内存
console.log(`arrayBuffers: ${memoryUsage.arrayBuffers / 1024 / 1024} MB`); // ArrayBuffer 和 SharedArrayBuffer 所使用的内存
数据结构
{
"rss": 21299200,
"heapTotal": 4825088,
"heapUsed": 2701480,
"external": 10485,
"arrayBuffers": 9895
}
4.3 指标
-
rss
:进程的常驻内存大小,包括堆、栈、代码段等。 -
heapTotal
:堆的总分配大小。 -
heapUsed
:堆中已经使用的部分。一般看监控数据的时候重点关注heapUsed
的指标就行了 -
external
:V8
引擎管理的C++
对象占用的内存。 -
arrayBuffers
:用于ArrayBuffer
的内存。
五、process.resourceUsage()
5.1 认识
process.resourceUsage()
提供了更广泛的资源使用情况,包括内存的使用量。
5.2 语法
const usage = process.resourceUsage();
console.log("资源使用情况:");
console.log(`最大RSS内存: ${usage.maxRSS / 1024} MB`);
console.log(`用户CPU时间: ${usage.userCPUTime} μs`);
console.log(`系统CPU时间: ${usage.systemCPUTime} μs`);