从 Context 检索到的 ByteBuf 与任何其他 ByteBuf 之间有什么区别

What is the difference between the ByteBuf retrieved from Context versus any other ByteBuf

我发现使用从 ChannelHandlerContext 派生的 ByteBuf 的行为与使用通过 Unpooled 创建的 ByteBuf 的行为完全相同。

即这两个作品:

ctx.write(ctx.alloc().buffer().writeBytes("Hello World".getBytes()))
ctx.write(Unpooled.wrappedBuffer("Hello World".getBytes()))

使用从 ctx.alloc().buffer() 检索到的 ByteBuf 与创建 BytBuf 的任何其他方法相比,行为是否有任何差异?

ChannelHandlerContext 使用为 Channel 配置的 ByteBufAllocator。默认情况下使用 PooledByteBufAllocator,这意味着出于性能原因缓冲区被合并。