首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何监控Node.js的内存使用情况?

如何监控Node.js的内存使用情况?
EN

Stack Overflow用户
提问于 2013-11-16 20:43:12
回答 6查看 141.3K关注 0票数 138

如何监控Node.js的内存使用情况?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-11-16 20:55:27

node-memwatch:检测并查找Node.JS代码中的内存泄漏。查看此教程Tracking Down Memory Leaks in Node.js

票数 74
EN

Stack Overflow用户

发布于 2015-05-07 05:06:52

内置的process模块有一个memoryUsage方法,它可以洞察当前Node.js进程的内存使用情况。以下是64位系统上Node v0.12.2中的示例:

代码语言:javascript
复制
$ node --expose-gc
> process.memoryUsage();  // Initial usage
{ rss: 19853312, heapTotal: 9751808, heapUsed: 4535648 }
> gc();                   // Force a GC for the baseline.
undefined
> process.memoryUsage();  // Baseline memory usage.
{ rss: 22269952, heapTotal: 11803648, heapUsed: 4530208 }
> var a = new Array(1e7); // Allocate memory for 10m items in an array
undefined
> process.memoryUsage();  // Memory after allocating so many items
{ rss: 102535168, heapTotal: 91823104, heapUsed: 85246576 }
> a = null;               // Allow the array to be garbage-collected
null
> gc();                   // Force GC (requires node --expose-gc)
undefined
> process.memoryUsage();  // Memory usage after GC
{ rss: 23293952, heapTotal: 11803648, heapUsed: 4528072 }
> process.memoryUsage();  // Memory usage after idling
{ rss: 23293952, heapTotal: 11803648, heapUsed: 4753376 }

在这个简单的示例中,您可以看到分配10M个元素的数组消耗了大约80MB (看看heapUsed)。

如果查看V8的源代码(Array::NewHeap::AllocateRawFixedArrayFixedArray::SizeFor),就会发现数组使用的内存是一个固定值加上长度乘以指针的大小。后者在64位系统上是8字节,这证实了观察到的8x10= 80MB的内存差异是有意义的。

票数 194
EN

Stack Overflow用户

发布于 2015-10-15 17:56:46

另外,如果你想知道全局内存而不是节点进程‘:

代码语言:javascript
复制
var os = require('os');

os.freemem();
os.totalmem();

See documentation

票数 47
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20018588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档