堆外的Node.js内存泄漏?

时间:2013-03-13 22:55:40

标签: node.js memory-leaks socket.io heap

我刚刚修复了节点堆中的节点应用程序中的内存泄漏。 我已经通过Google的Profiler对其进行了分析,并成功解决了内存泄漏问题。

现在我的应用程序再次运行了一段时间,我已经看到堆大小非常稳定。没有内存泄漏了。但当我检查我的服务器的空闲内存时,我看到了减少... 当我重新启动我的节点服务器时,RAM达到它的正常空闲RAM。 现在我听说Node.js可以保存堆外的对象和东西。我认为这就是造成内存泄漏的原因。

我怎样才能看到占用内存的是什么?真的无法描述任何东西,或者我可以吗?

我正在使用:

node.js:v0.8.18和 socket.io:v0.9.13

我正在使用的其他一些节点模块是:nodetime,heapdump(虽然会删除它),jquery,crypto,request和querystring。

一些图表:

Free OS memoryNode RSSHeap used

1 个答案:

答案 0 :(得分:0)

您可以使用heapdump模块创建核心转储,然后将其加载到webkit的Web检查器中以分析程序的内存状态。请查看heapdump模块中README的结尾,以获取有关在Google Chrome中加载heapdump的说明。

查看this article,了解某人如何追踪其程序中的内存泄漏。