Netty readBytes 引用计数
Netty readBytes reference counting
我的代码看起来像这样:
void decodeFragment(ByteBuf fragment) {
fragment.readByte();
...
}
void decodeMessage(ByteBuf buf) {
buf.readByte(); // header
...
decodeFragment(buf.readBytes(20));
}
据我了解,来自 readBytes
的新缓冲区将有自己的引用计数,我需要处理它。如果我知道我不需要比原始缓冲区更长的片段,还有其他选择吗?也许 readSlice
是我要找的?文档不是很清楚。
另一个相关问题。如果我创建 Unpooled.wrappedBuffer
我还需要处理引用计数吗? Unpooled.copiedBuffer
呢?
如果您不需要额外的引用计数并且可以共享或想要共享底层存储 slice
或 readSlice
是您正在寻找的方法。
是的,即使对于 wrappdBuffer
和 copiedBuffer
,您也需要注意释放缓冲区。
我的代码看起来像这样:
void decodeFragment(ByteBuf fragment) {
fragment.readByte();
...
}
void decodeMessage(ByteBuf buf) {
buf.readByte(); // header
...
decodeFragment(buf.readBytes(20));
}
据我了解,来自 readBytes
的新缓冲区将有自己的引用计数,我需要处理它。如果我知道我不需要比原始缓冲区更长的片段,还有其他选择吗?也许 readSlice
是我要找的?文档不是很清楚。
另一个相关问题。如果我创建 Unpooled.wrappedBuffer
我还需要处理引用计数吗? Unpooled.copiedBuffer
呢?
如果您不需要额外的引用计数并且可以共享或想要共享底层存储 slice
或 readSlice
是您正在寻找的方法。
是的,即使对于 wrappdBuffer
和 copiedBuffer
,您也需要注意释放缓冲区。