我在 netty 4.1.47 上做了一些性能测试,我发现在同一个测试用例中,mode 下的已用内存大约是设置为 false 的preferDirectBufs4 倍。preferDirectBufs
- 设置
preferDirectBufs=真; - 做一些性能测试;
- 检查
PooledByteBufAllocatorMetric#usedDirectMemory() 的值; - 设置
preferDirectBufs=假; - 进行与步骤 2 相同的测试;
- 检查
PooledByteBufAllocatorMetric#usedHeapMemory() 的值;
然后我发现mode中的已用内存大约是设置为false的preferDirectBufs4倍。preferDirectBufs并导致直接内存OOM错误
网络版本:4.1.47
JVM版本:java版本“1.8.0_242”