2012-02-02 6 views
6

Tengo una aplicación de red que maneja unos 40k msg/seg escritos usando netty framework y quiero reducir el número de llamadas al recolector de elementos no utilizados. Si bien perfilado he encontrado que hay cantidad significativa de byte[] casos y sospecho que se trata de esta parte del código:Cómo reducir la producción de basura netty?

public class MessageHandler extends SimpleChannelHandler { 

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

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

} 

¿Es posible forzar Netty volver a utilizar la piscina ChannelBuffers/alguna manera para evitar que la construcción de ellos cada ¿hora?

Respuesta

5

Tenemos previsto implementar la agrupación de almacenamientos intermedios, pero aún no está hecho.

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

+0

Así Netty crea nuevas ChannelBuffer cada vez que, cuando llegue el mensaje nuevo? –

+0

sí, así es cómo funciona atm –

+0

¿Hay alguna manera simple de evitar esto? Solo tengo un cliente tcp y no quiero producir otra basura asignando un montón de ChannelBuffers. Tal vez puedo ir a la mesa y cambiar un poco, pero estoy tranquilo nuevo en esta biblioteca. –