Netty中MessageToByteEncoder的缓冲区类型

时间:2014-11-08 20:04:09

标签: java netty

我一直在阅读Norman Maurer的presentation on Netty best practices,并对使用直接缓冲区与堆缓冲区有疑问。 One slide建议“在写入SocketChannel时始终使用直接ByteBuffer”,但another鼓励在使用MessageToByteEncoder时使用堆缓冲区。我不认为我在第二张幻灯片中得到了细微差别;在MessageToByteEncoder的情况下,为什么使用堆缓冲区“保存额外的字节副本?”

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您需要直接对后备阵列执行操作,则使用堆缓冲区可能有意义。例如,当您使用deflater / inflater时,这是正确的,因为它仅作用于byte []。对于所有其他情况,首选直接缓冲区。