小编Sur*_*war的帖子

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)
Run Code Online (Sandbox Code Playgroud)

我无法找到假定的泄漏对象来增加侦听器限制 .setMaxListeners(0);

解决方案(来自fardjad和jan salawa)

随着jan salawa的搜索,我找到了一个工作库(longjohn)来增加堆栈跟踪的详细信息.随着fardjad的回应我发现我们必须原型EventEmitter.addListener EventEmitter.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)
Run Code Online (Sandbox Code Playgroud)

memory-leaks node.js eventemitter

54
推荐指数
6
解决办法
7万
查看次数

标签 统计

eventemitter ×1

memory-leaks ×1

node.js ×1