学习第42节
Netty 内存泄漏的现象:
• 原因:“忘记”release
ByteBuf buffer = ctx.alloc().buffer();
buffer.release() / ReferenceCountUtil.release(buffer)
• 后果:资源未释放 -> OOM
• 堆外:未 free(PlatformDependent.freeDirectBuffer(buffer));
• 池化:未归还 (recyclerHandle.recycle(this))
Netty 内存泄漏检测核心思路:引用计数(buffer.refCnt())+ 弱引用(Weak reference)
• 引用计数
• 判断历史人物到底功大于过,还是过大于功?
功 +1, 过 -1, = 0 时:尘归尘,土归土,资源也该释放了
• 那什么时候判断?“盖棺定论”时 -> 对象被 GC 后