我刚刚修复了节点堆中的节点应用程序中的内存泄漏。 我已经通过Google的Profiler对其进行了分析,并成功解决了内存泄漏问题。
现在我的应用程序再次运行了一段时间,我已经看到堆大小非常稳定。没有内存泄漏了。但当我检查我的服务器的空闲内存时,我看到了减少... 当我重新启动我的节点服务器时,RAM达到它的正常空闲RAM。 现在我听说Node.js可以保存堆外的对象和东西。我认为这就是造成内存泄漏的原因。
我怎样才能看到占用内存的是什么?真的无法描述任何东西,或者我可以吗?
我正在使用:
node.js:v0.8.18和 socket.io:v0.9.13
我正在使用的其他一些节点模块是:nodetime,heapdump(虽然会删除它),jquery,crypto,request和querystring。
一些图表:
答案 0 :(得分:0)
您可以使用heapdump模块创建核心转储,然后将其加载到webkit的Web检查器中以分析程序的内存状态。请查看heapdump模块中README的结尾,以获取有关在Google Chrome中加载heapdump的说明。
查看this article,了解某人如何追踪其程序中的内存泄漏。