当我将对象写入网络时,Netty是否为我提供了避免缓冲区复制的方法?在我的Channel.write(Object)
中,根据我的理解,该对象通过编码器(返回ChannelBuffer副本)。这基本上意味着每条消息我最终都会创建一个缓冲区副本,最终会创建大量的短期缓冲区对象
Netty可以为我提供一个可重复使用的ChannelBuffer,我用字节填充它并将这些字节直接写入网络吗?
答案 0 :(得分:0)
Netty已经回收了缓冲区,你不需要关心它。
此外,编码器/解码器只是你自己编写的编码器/解码器,Netty只能处理 ChannelBuffer 对象,如果你正在为你的频道写一个ChannelBuffer,它周围没有魔法,它的内容是直接写到输出。
您可以(而且应该)做的是创建所需大小的缓冲区,以避免在使用数据加载缓冲区时分配动态缓冲区。