使用vs Max vs Size -Jvisualvm?

时间:2016-10-23 11:09:37

标签: java performance memory heap jvisualvm

在jvisual vm中我看到Monitor> Heap下的三个属性,我看到3个描述内存细节的属性都有不同的数字

  1. 尺寸:?
  2. 使用: - 我相信这是实际使用的内存
  3. Max: - 我相信这是分配给java进程的最大堆大小(用Xmx指定)
  4. 我不确定实际描绘的是什么尺寸?

2 个答案:

答案 0 :(得分:1)

这三个属性可以定义为下一个:

  1. 大小:实际的总预留堆大小
  2. 已使用:实际使用的堆大小。
  3. Max: Java堆的最大大小(年轻代+终身代)
  4. 实际上,当您启动JVM时,初始堆大小(可以使用-Xms定义)将是初始总保留堆大小,然后根据应用程序的行为方式,它可能需要增加总保留大小,直到达到最大大小,如果仍然不够,你可以获得OOME。

答案 1 :(得分:0)

Size描述分配给java进程的堆块大小。尝试使用-Xms 512m或1024m,然后你的尺寸将是512m,但使用的内存可能要低得多。一旦使用的内存增加,就会主动进行堆大小调整,以便可以将内存分配给活动对象。

它就像你有30升最大容量的气罐。但是你知道现在你可能只需要20升的旅行,但实际上用于旅行的是5升