直接内存是否会影响Java中的压缩指针?

时间:2016-02-11 17:54:15

标签: java memory jvm

我知道,一旦Java堆大小超过32GB,我们就会失去压缩指针的好处,并且可能会减少有效内存(相比之下32GB),直到总堆达到~48GB。

直接内存使用是否影响使用压缩指针的决定?例如,我是否仍然可以使用-Xmx28G -XX:MaxDirectMemorySize=12G

等设置来使用它们

1 个答案:

答案 0 :(得分:3)

  

我知道,一旦Java堆大小超过32GB,我们就会失去压缩指针的好处,并且可能会减少有效内存(相比之下32GB),直到总堆达到~48GB。

您可以将对象对齐增加到16(在Java中),允许您使用高达64 GB的CompressedOops。

  

直接内存使用是否会影响使用压缩指针的决定?

直接内存只是本机内存,如线程堆栈,GUI组件,共享库等。它们不是堆的一部分,也不是元空间。

  

例如,我是否仍然可以使用-Xmx28G -XX等设置:MaxDirectMemorySize = 12G

如果您愿意,可以拥有-XX:MaxDirectMemorySize=1024G,这不是堆的一部分。