2015-07-28 60 views
2

我的nodejs应用程序有内存泄漏。为了恢复应用程序的目的,它是由iOS应用程序调用的api和用于管理某些内容的后台。 该应用程序正在生产中,并且由于利用率而出现内存泄漏。内存泄漏节点js

服务器上的内存始终在增加,永不停机。 我尝试使用node-heapdump分析问题。

首先,我看到node-heapdump给出的快照的堆大小与应用程序在内存中占用的大小(堆大小〜30Mb和RAM大小〜100Mb)之间有很大区别,其中差异来自 ?

然后我看到一个堆大小的增量只是刷新主页谁不会返回任何东西。 有没有人有我的问题可能在哪里的想法?

有关信息,我使用的版本的NodeJS和0.10.x在expressjs提前家伙4.0.0

感谢。

编辑

我安装MEMWATCH-未来和泄漏事件引发的。 我有这个错误:

警告:可能发生EventEmitter内存泄漏。添加了11个泄漏听众 。使用emitter.setMaxListeners()来增加限制。

我尝试设置defaultMaxListeners,但是当我强调应用程序泄漏事件在某个时间后引发。 有谁知道这个错误是什么意思?

+0

主页不返回任何东西? – Spork

+0

对于任何我的意思是不是一个JSON结果或类似的东西。所以这并不是因为内存上升的对象的新内存分配。 –

回答

2

看看MEMWATCH,未来

我曾与MEMWATCH包类似的问题,并切换到MEMWATCH,接下来,它没有安装节点-GYP错误并制作工作。至于RSS和heapdump之间的区别,我和你在同一条船上。

+0

谢谢,memwatch-next模块实际上工作。我会编辑我的帖子,把我的结果。 –

+0

我使用memwatch-next和heapdump来获取内存快照,只要发生泄漏事件,我就可以在chrome中加载这些快照文件并查找消耗更多内存的对象,但我无法准确诊断这些对象的位置用于我的代码中,因为它显示了具有最高计数的字符串对象。诊断快照的任何好运。 –

0

尝试从https://www.npmjs.com/package/memwatch中查找内存泄漏泄漏和统计信息。

希望它会有所帮助。

+0

我尝试通过npm安装memwatch,但失败。 在[email protected]安装脚本'node-gyp rebuild'失败。 npm ERR!这很可能是memwatch包的一个问题, npm ERR!而不是npm本身。 你有同样的问题吗? –

+0

你必须安装python才能使用mematch,因为它使用一些os API来获取数据。确保你设置了环境变量,以便python命令可以从任何地方运行。 – kc007

+0

这仍然不起作用。反正memwatch不会给我更多关于node-heapdump的信息,因为它们都显示堆大小和重新分区。无论如何感谢您的回复 –