如何調試我的應用程序,它拋出這個錯誤:的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