PlatformDependent.maxDirectMemory() must respect io.netty.maxDirectMemory (#8452)
Motivation: In netty we use our own max direct memory limit that can be adjusted by io.netty.maxDirectMemory but we do not take this in acount when maxDirectMemory() is used. That will lead to non optimal configuration of PooledByteBufAllocator in some cases. This came up on stackoverflow: https://stackoverflow.com/questions/53097133/why-is-default-num-direct-arena-derived-from-platformdependent-maxdirectmemory Modifications: Correctly respect io.netty.maxDirectMemory and so configure PooledByteBufAllocator correctly by default. Result: Correct value for max direct memory.
This commit is contained in:
parent
d4b1202e62
commit
d533befa96
@ -154,8 +154,8 @@ public final class PlatformDependent {
|
||||
DIRECT_MEMORY_COUNTER = new AtomicLong();
|
||||
}
|
||||
}
|
||||
DIRECT_MEMORY_LIMIT = maxDirectMemory;
|
||||
logger.debug("-Dio.netty.maxDirectMemory: {} bytes", maxDirectMemory);
|
||||
DIRECT_MEMORY_LIMIT = maxDirectMemory >= 1 ? maxDirectMemory : MAX_DIRECT_MEMORY;
|
||||
|
||||
int tryAllocateUninitializedArray =
|
||||
SystemPropertyUtil.getInt("io.netty.uninitializedArrayAllocationThreshold", 1024);
|
||||
@ -284,7 +284,7 @@ public final class PlatformDependent {
|
||||
* Returns the maximum memory reserved for direct buffer allocation.
|
||||
*/
|
||||
public static long maxDirectMemory() {
|
||||
return MAX_DIRECT_MEMORY;
|
||||
return DIRECT_MEMORY_LIMIT;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user