2012-02-02 58 views
6

Tôi có ứng dụng mạng xử lý khoảng 40k msg/giây được viết bằng khung công tác netty và tôi muốn giảm số lượng cuộc gọi thu gom rác. Trong khi profiling tôi thấy rằng có số lượng đáng kể byte[] trường và tôi nghi ngờ rằng nó xuất phát từ một phần mã này:Làm thế nào để giảm sản lượng rác thải?

public class MessageHandler extends SimpleChannelHandler { 

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

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

} 

Có thể để buộc Netty để tái sử dụng/hồ bơi ChannelBuffers bằng cách nào đó để ngăn chặn nó để xây dựng họ mỗi thời gian?

Trả lời

5

Chúng tôi dự định triển khai tổng hợp bộ đệm nhưng chưa hoàn thành.

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

+0

Vì vậy, netty tạo ChannelBuffer mới mỗi lần, khi thư mới đến? –

+0

yes thats cách hoạt động atm –

+0

Có cách nào đơn giản để tránh điều này không? Tôi chỉ có một khách hàng tcp và không muốn tạo ra một rác khác, bằng cách phân bổ một loạt các ChannelBuffers. Có lẽ tôi có thể nĩa nêm và thay đổi một chút, nhưng tôi mới yên lặng với thư viện này. –

Các vấn đề liên quan