2012-02-02 113 views
6

我有網絡應用程序處理約40k msg/sec使用netty框架編寫,我想減少垃圾回收器調用的數量。雖然剖析我發現有byte[]實例顯著量,我懷疑它來自這部分代碼:如何減少垃圾產生量?

public class MessageHandler extends SimpleChannelHandler { 

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

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

} 

是否有可能迫使網狀重用/池ChannelBuffers不知何故,以防止它來構建他們的每時間?

回答

5

我們計劃實施緩衝池,但尚未完成。

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