Netty 4可以使用直接内存。我认为在启动使用Netty的Java进程时我应该/必须设置选项-XX:MaxDirectMemorySize
。
答案 0 :(得分:2)
你也不需要..但它会给JVM一个暗示允许分配多少直接内存。
答案 1 :(得分:2)
这实际上取决于您的应用程序将使用多少直接内存。默认情况下,JVM直接内存的最大可用大小与最大堆大小相同,尽管它在JVM供应商和版本之间有所不同。
io.netty.util.internal.PlatformDependent.maxDirectMemory()
以字节为单位返回最大直接内存大小,因此您可能希望将其用于调试目的。实际上,如果将日志级别io.netty.util.internal.PlatformDependent
设置为DEBUG,Netty会记录该值。
答案 2 :(得分:1)
我认为在大多数情况下,您不需要设置直接内存大小。 如果你没有达到某一点,你的直接内存不足,首先应该先看看你是否正确使用直接内存,然后再手动设置。检查您是否创建了许多io worker,并创建了许多直接缓冲区而不是重用io worker。