Following is my code where i have used Netty Unpooled.directBuffer.do i have to explicitly deallocate memory or does netty do that?
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;
}
It depends on your outgoing pipeline. In general you have to release direct buffers explicitly. However in case you already have Outbound Handler in your pipeline that releases buffers you don't need to do that. For example, in case your pipeline contains MessageToByteEncoder
handler or subclasses of it you don't need to release buffers explicitly.
In most cases if you're using default HTTP, Websockets, MQTT handlers you don't need to release direct buffers.