【发布时间】:2015-10-18 19:17:11
【问题描述】:
我的 nodejs 应用程序出现内存泄漏。为了恢复应用程序的目的,它是一个由iOS应用程序和后台调用的api来管理一些内容。 该应用程序正在生产中,由于使用,我们遇到了一些内存泄漏。
服务器上的内存一直在上升,从不下降。 我尝试使用 node-heapdump 分析问题。
首先,我看到 node-heapdump 给出的快照的堆大小与应用程序在内存中占用的大小(堆大小 ~ 30Mb 和 RAM 大小 ~ 100Mb)之间存在很大差异,差异来自从?
然后我看到堆大小的增量只是通过刷新一个不返回任何内容的主页。 有人知道我的问题可能出在哪里吗?
有关信息,我使用 nodejs 版本 0.10.x 和 expressjs 4.0.0
提前谢谢各位。
编辑
我安装了 memwatch-next 并引发了泄漏事件。 我的错误是这个:
警告:检测到可能的 EventEmitter 内存泄漏。 11 个泄漏监听器 添加。使用emitter.setMaxListeners() 增加限制。
我尝试设置 defaultMaxListeners,但是当我强调应用程序时,会在一段时间后引发泄漏事件。 有谁知道这个错误是什么意思?
【问题讨论】:
-
什么都不返回的首页?
-
对于任何我的意思不是 json 结果或类似的东西。因此,内存增加并不是因为为对象分配了新的内存。