使用的是 UnpooledByteBufAllocator.DEFAULT 创建 Bytebuf ,底层实现是 directBuffer 。
我认为他是 Unpooled 的,所以我没有释放它。netty 的检测机制给我报警了。
报警信息是:
ByteBuf.release() was not called before it's garbage-collected
|  |      1BBCCBB      2022-05-23 14:16:09 +08:00 都要释放, 不然他不知道你什么时候不用了.  它的释放只是直接放回到 direct mem, Pool 的是放回到 Netty 池管理 direct mem 里. | 
|  |      2BBCCBB      2022-05-23 14:17:42 +08:00 不对,, DirectByteBuffer jvm 会自行回收... | 
|  |      3git00ll OP  1 自己回答一下,Unpooled.directBuffer 会被 gc 回收。所以不会引起 oom ,当然报警也是真的,因为我们确实没有主动释放它。 netty 不建议这么做,netty 更希望我们主动释放它。 |