1

当我将对象写入网络时,Netty 是否为我提供了避免缓冲区复制的任何方法?在Channel.write(Object)我的理解中,这个对象是通过编码器(返回 ChannelBuffer 副本)。这基本上意味着对于每条消息,我最终都会创建一个缓冲区副本,最终创建大量短暂的缓冲区对象

Netty 可以为我提供一个可重用的 ChannelBuffer,我用字节填充它并将这些字节直接写入网络吗?

4

1 回答 1

0

Netty 已经回收了缓冲区,你不需要关心这个。

此外,编码器/解码器只是您自己编写的,Netty 只能处理ChannelBuffer对象,如果您将 ChannelBuffer 写入您的通道,则它周围没有魔法,它的内容直接写入输出。

您可以(并且应该)做的是创建您需要的确切大小的缓冲区,以避免在向缓冲区加载数据时分配动态缓冲区。

于 2012-05-30T11:52:28.180 回答