< p >Java sun的
Unsafe.allocateMemory
有任何限制吗?我知道它是非堆内存,因此不受GC的影响。但是我们能否通过JVM命令限制分配大小,例如:
-XX:MaxDirectMemorySize
Unsafe.allocateMemory
有任何限制吗?我知道它是非堆内存,因此不受GC的影响。但是我们能否通过JVM命令限制分配大小,例如:
-XX:MaxDirectMemorySize
根据应用程序的情况,您可以考虑将 Unsafe#allocateMemory
调用封装到自己的方法中,并基于命令行参数检查大小限制,就像您建议的那样。
如果您的意图是防止第三方库(其在内部使用 Unsafe#allocateMemory
)分配过多的内存,则我认为没有合理的方法来实现这一点。