最近又遇到 EventEmitter memory leak detected 问题了。
原因是超时使用了 socket.setTimeout() ,在压测的时候出现 #issues3 EventEmitter内存可能泄漏的异常。
于是我又想起了之前分享过的关于超时设置的问题。
我使用 setTimeout() 替换 socket.setTimeout() 后,此问题就不再出现了。
看了一下 net.js 的源代码,感觉是不会出问题的,但是实际输出和看的代码不一致。有些疑惑,不知道各位是否也遇到类似问题呢?
回复 (4)
F
@pengchun
W
猜测应该是 keep-alive 模式时,此socket 被多次request 所依赖,而每次request 都设置一次所致... 纯属猜测...
F
引用 windyrobin猜测应该是 keep alive 模式时,此socket 被多次request 所依赖,而每次request 都设置一次所致... 纯属猜测...
一开始我也怀疑是这个问题,后来我在setTimeout之前先removeAllListener('timeout'),结果还是一样。
F
请问,这个问题,解决了否???
参与回复
登录后即可参与回复。登录