来自官方文档(source):
process.memoryUsage()
返回一个对象,该对象描述Node进程的内存使用情况。
var util =请求(‘util’);console.log(util.inspect(process.memoryUsage()));
这将生成:
{ rss: 4935680,heapTotal: 1826816,heapUsed: 650472 }
heapTotal和heapUsed指的是V8的内存使用情况。
rss、heapTotal和heapUsed到底代表什么?
这可能看起来是一个微不足道的问题,但我一直在寻找,到目前为止我还没有找到一个明确的答案。
发布于 2016-06-27 16:54:30
为了回答这个问题,我们必须首先了解V8的内存方案。
运行中的程序总是通过内存中分配的一些空间来表示的。这个空间称为驻留集。V8使用类似于Java Virtual Machine的方案,并将内存划分为多个段:
现在很容易回答这个问题:
发布于 2012-08-19 09:05:38
RSS是resident set size,保存在内存中的进程内存部分(而不是交换空间或文件系统中保存的部分)。
堆是内存中新分配的对象的来源部分(想想C中的malloc
,或者JavaScript中的new
)。
您可以在Wikipedia上阅读有关堆的更多信息。
发布于 2019-12-11 03:09:19
Node.js documentation对它的描述如下:
heapTotal和heapUsed指的是V8的内存使用情况。外部是指绑定到由V8管理的JavaScript对象的C++对象的内存使用情况。rss,Resident Set Size,是进程在主内存设备(即总分配内存的子集)中占用的空间量,包括堆、代码段和堆栈。
所有提到的值都是以字节表示的。所以,如果您只想打印它们,您可能需要将它们重新缩放到MB:
const used = process.memoryUsage();
for (let key in used) {
console.log(`Memory: ${key} ${Math.round(used[key] / 1024 / 1024 * 100) / 100} MB`);
}
这将为您提供类似以下内容的输出:
Memory: rss 522.06 MB
Memory: heapTotal 447.3 MB
Memory: heapUsed 291.71 MB
Memory: external 0.13 MB
https://stackoverflow.com/questions/12023359
复制相似问题