【问题标题】:How Netty direct Buffer memory allocated and deallocated?Netty如何直接分配和释放Buffer内存?
【发布时间】:2017-03-08 11:48:05
【问题描述】:

以下是我使用 Netty Unpooled.directBuffer 的代码。我必须显式释放内存还是 netty 会这样做?

public ByteBuf Payload() {
    int totalLength=0;
   for(ByteBuf byteBuf:payload){
       totalLength+=byteBuf.readableBytes();
   }
 **ByteBuf byteBuf= Unpooled.directBuffer(totalLength,totalLength+10);**
    for(ByteBuf byteBuf1:payload){
        byteBuf.writeBytes(byteBuf1);
    }
    System.out.println("content :"+byteBuf.readableBytes());
    return byteBuf;
}

【问题讨论】:

    标签: netty bytebuffer http2


    【解决方案1】:

    这取决于您的传出管道。通常,您必须明确释放直接缓冲区。但是,如果您的管道中已经有出站处理程序来释放缓冲区,则不需要这样做。例如,如果您的管道包含MessageToByteEncoder 处理程序或其子类,则您不需要显式释放缓冲区。 在大多数情况下,如果您使用默认 HTTP、Websockets、MQTT 处理程序,则不需要释放直接缓冲区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 1970-01-01
      • 2021-04-21
      • 2020-11-09
      相关资源
      最近更新 更多