如何调试我的应用程序,它抛出这个错误:的NodeJS:如何调试“EventEmitter内存泄漏检测11个听众补充。”
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Socket.EventEmitter.addListener (events.js:160:15)
at Socket.Readable.on (_stream_readable.js:653:33)
at Socket.EventEmitter.once (events.js:179:8)
at TCP.onread (net.js:527:26)
我无法找到由.setMaxListeners(0);
增加听众的限制假定泄漏对象
解决方案(从fardjad和Jan Salawa先生)
随着一月Salawa先生的搜索,我发现一个工作库(longjohn)增加堆栈跟踪冗长。随着fardjad的回应,我发现我们必须制作原型EventEmitter.addListener
ANDEventEmitter.on
。
通过该解决方案,我可以得到这个新的跟踪:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at EventEmitter.addListener.EventEmitter.on (xxx/main.js:44:15)
at Readable.on (_stream_readable.js:653:33)
at ServerResponse.assignSocket (http.js:1072:10)
at parser.onIncoming (http.js:1979:11)
at parserOnHeadersComplete (http.js:119:23)
at socket.ondata (http.js:1912:22)
at TCP.onread (net.js:510:27)
查看关于agent.maxSockets http://weblog.bocoup.com/node-stress-test-analysis/的相关信息。也许这是一个原因。 – 2013-03-31 21:23:13
尝试没有成功。我把'require(“http”)。globalAgent.maxSockets = Infinity;'放在我的main.js中,但没有任何变化...... :(我也尝试过'ulimit -n 999999'命令打开文件限制和'--nouse- idle-notification'用于暂停实时垃圾收集器... – Ifnot 2013-04-01 14:27:51
这完全挂起了我的节点js服务器,当我按下control + C其他处理启动时,在本地运行时发生异常。我试过设置maxListeners没有用,它是什么说是我有太多的人连接到相同的听众,或者说我有太多的事件 – 2017-09-07 11:50:10