Ho un'applicazione di rete che gestisce circa 40k msg/sec scritti usando netty framework e voglio ridurre il numero di chiamate di garbage collector. Mentre profiling ho scoperto che v'è una significativa quantità di byte[]
istanze e ho il sospetto che viene da questa parte di codice:Come ridurre la produzione di rifiuti inutili?
public class MessageHandler extends SimpleChannelHandler {
public void messageReceived(ChannelHandlerContext ctx, final MessageEvent e) {
ChannelBuffer message = (ChannelBuffer) e.getMessage();
}
}
E 'possibile forzare Netty di riutilizzare/piscina ChannelBuffers
in qualche modo per evitare che costruire loro ogni tempo?
Così Netty crea nuova ChannelBuffer ogni volta, quando il nuovo messaggio arriva? –
sì, come funziona atm –
C'è un modo semplice per evitarlo? Ho solo un client TCP e non voglio produrre altri rifiuti, allocando un gruppo di ChannelBuffer. Forse potrò sborsare un po 'e cambiare un po', ma sono tranquillo nuovo in questa libreria. –