关闭NioEventLoopGroup
堆栈后重用netty
是一种好习惯吗?
以下是一些背景知识:
在连接丢失后立即建立netty
连接时,我们的堆内存耗尽(我们重新连接netty
并在连接丢失后立即重新创建堆栈)。我们正在运行32位java,因此虚拟内存空间有限。
在建立新连接之前立即执行gc
似乎可以通过清理堆内存来解决此问题。但是,做一个明确的System.gc
是不好的做法。
我们怀疑NioEventLoopGroup
引用了大量的堆外内存,因此我们尝试重新使用if以用于新连接。但是,我们担心在上一次运行NioEventLoopGroup
上可能仍有排队的任务。
提前感谢您的建议。
答案 0 :(得分:0)
是的,开发人员已经声明重用EventLoopGroup
。
请参阅:
如果可以,请重复使用EventLoopGroup!
http://normanmaurer.me/presentations/2014-facebook-eng-netty/slides.html#25.0
或:
通常,创建单个事件循环组实例就可以了 并将其重用于所有渠道。