2012-02-02 1 views
6

У меня есть сетевое приложение, которое обрабатывает около 40 тыс. Msg/sec, написанное с использованием сетки netty, и я хочу уменьшить количество вызовов сборщика мусора. В то время как профилирование я обнаружил, что существует значительное количество byte[] экземпляров, и я подозреваю, что это происходит из этой части кода:Как уменьшить производство нетто-мусора?

public class MessageHandler extends SimpleChannelHandler { 

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

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

} 

Можно ли заставить NETTY повторно/бассейн ChannelBuffers каким-то образом, чтобы предотвратить его, чтобы построить их все время?

ответ

5

Мы планируем реализовать объединение буферов, но его еще не сделано.

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

+0

Так Нетти создает новый ChannelBuffer каждый раз, когда приходит новое сообщение? –

+0

да, как это работает atm –

+0

Есть ли простой способ избежать этого? У меня есть только tcp-клиент и я не хочу создавать другой мусор, выделяя кучу ChannelBuffers. Может быть, я могу раскошелиться и немного поменять, но я уже не знаком с этой библиотекой. –