node 查询内存使用情况
目录
主要使用 process.memoryUsage()
方法。
memoryUsage 返回具有各种信息的对象:rss
,heapTotal
,heapUsed
,external
:
rss
代表 Resident Set Size,它是分配给进程执行的总内存heapTotal
是分配的堆的总大小heapUsed
是在执行过程中使用的实际内存
例子:
|
|
补充
上文中的 rss
,heapTotal
,heapUsed
具体指什么?
为了回答这个问题,需要先了解 V8 的内存方案。
运行程序运行时始终会在内存中占用一定的空间。这个空间被称为 Resident Set
。V8 使用类似于 Java 虚拟机的方案,并将内存划分为段:
- Code: 实际被执行的代码
- Stack(栈): 包含所有值类型(Integer 或 Boolean)的所有值类型,指针引用堆和指针定义程序的控制流程的指针
- Heap(堆):专用于存储对象,字符串和闭包等引用类型的存储段。
这样的话,问题就很好解答了
- rss: Resident Set Size
- heapTotal: Total Size of the Heap
- heapUsed: Heap actually Used
参考文档: