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