文章摘要
挖坑待填…
之前项目中怼Netty的高性能编程进行了实践,其中Netty 的接收和发送 ByteBuffer有用到堆外内存 DIRECT BUFFERS。使用堆外直接内存进行 Socket 读写,好处是不需要进行字节缓冲区的二次拷贝,实现了Netty的零拷贝。但是堆外内存不能被GC回收,必须遵循“谁分配,谁释放”的原则,在使用堆外内存后如果没有及时的释放,则很有可能导致OOM问题,具体可以参考这篇文章:Netty直接内存泄露;而如果对堆外内存进行了重复释放,服务则会抛出Netty引用计数异常问题。
本文旨在结合源码,对Netty的引用计数对象进行简析。