我正在使用带有直接缓冲区的Netty 4.1.17-Final。
我们在测试程序中发送和接收100 MB的byte [],并且当解码器达到100 MB时,我们将不执行任何操作而将其丢弃。
@Override
public void decode(ByteBuffer _in, List<Object> _out) {
if (_in.remaining() == size) { // size = 100 * 1024 * 1024
_in.get(new byte[size]);
}
}
在测试结束时,我明确执行了GC并尝试睡眠约10秒钟,以期预期Cleaner会释放出来。但是,Direct Buffer并未部分发布,但Netty并未报告ByteBuf中发生泄漏。
我为测试程序提供了以下选项。-Dio.netty.maxDirectMemory=0 -Dio.netty.leakDetection.level=PARANOID
墨色风雨
相关分类