如何减少垃圾产生量?

问题描述:

我有网络应用程序处理约40k msg/sec使用netty框架编写,我想减少垃圾回收器调用的数量。虽然剖析我发现有byte[]实例显著量,我怀疑它来自这部分代码:如何减少垃圾产生量?

public class MessageHandler extends SimpleChannelHandler { 

public void messageReceived(ChannelHandlerContext ctx, final MessageEvent e) { 

    ChannelBuffer message = (ChannelBuffer) e.getMessage(); 
} 

} 

是否有可能迫使网状重用/池ChannelBuffers不知何故,以防止它来构建他们的每时间?

我们计划实施缓冲池,但尚未完成。

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

+0

所以网状创造了新的每ChannelBuffer类型时,新邮件到达时? – 2012-02-02 09:41:00

+0

是的,这就是它如何工作atm – 2012-02-04 08:20:41

+0

有没有一种简单的方法,我可以避免这种情况?我只有一个tcp客户端,并且不想通过分配一堆ChannelBuffers来产生另一个垃圾。也许我可以fork netty并改变一下,但我对这个图书馆很陌生。 – 2012-02-06 08:22:37