在关闭netty堆栈

时间:2015-08-20 21:25:14

标签: java garbage-collection netty

关闭NioEventLoopGroup堆栈后重用netty是一种好习惯吗?

以下是一些背景知识:

在连接丢失后立即建立netty连接时,我们的堆内存耗尽(我们重新连接netty并在连接丢失后立即重新创建堆栈)。我们正在运行32位java,因此虚拟内存空间有限。

在建立新连接之前立即执行gc似乎可以通过清理堆内存来解决此问题。但是,做一个明确的System.gc是不好的做法。

我们怀疑NioEventLoopGroup引用了大量的堆外内存,因此我们尝试重新使用if以用于新连接。但是,我们担心在上一次运行NioEventLoopGroup上可能仍有排队的任务。

提前感谢您的建议。

1 个答案:

答案 0 :(得分:0)

是的,开发人员已经声明重用EventLoopGroup

是一种好习惯

请参阅:

  

如果可以,请重复使用EventLoopGroup!

http://normanmaurer.me/presentations/2014-facebook-eng-netty/slides.html#25.0

或:

  

通常,创建单个事件循环组实例就可以了   并将其重用于所有渠道。

https://github.com/netty/netty/issues/639