[英]Why is my JVM's total memory usage more than 30 times greater than its Xmx value?
[英]Why is the JVM total allocated memory greater than -Xmx?
JVM选项:
-Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8
正如预期的那样,JVM将为JVM堆分配近20MB的内存。
但请参阅以下GC详细信息:
PSYoungGen总计9216K ,使用4612K [0x00000000ff600000,0x0000000100000000,0x0000000100000000)
伊甸园空间8192K ,56%使用[0x00000000ff600000,0x00000000ffa812d8,0x00000000ffe00000)
从空间1024K ,0%使用[0x00000000fff00000,0x00000000fff00000,0x0000000100000000)
空间 1024K,使用0%[0x00000000ffe00000,0x00000000ffe00000,0x00000000fff00000)
PSOldGen总计10240K ,使用8192K [0x00000000fec00000,0x00000000ff600000,0x00000000ff600000)
对象空间10240K,80%使用[0x00000000fec00000,0x00000000ff400020,0x00000000ff600000] PSPermGen总计21248K ,使用3033K [0x00000000f9a00000,0x00000000faec0000,0x00000000fec00000)
对象空间21248K,14%使用[0x00000000f9a00000,0x00000000f9cf6708,0x00000000faec0000)
年轻一代的规模与期权-Xmn
。 年轻一代的 伊甸园空间和幸存者空间的大小比例与-XX:SurvivorRatio=8
的选项一样。 但似乎JVM总共分配了近40MB的内存,所以很奇怪。 为什么JVM总分配内存大于-Xmx
?
ENV:
操作系统:win7 64位
JDK:构建1.6.0_43-b01 64位
-Xmx
设置HotSpot对象堆的最大大小,即YoungGen(Eden + Survivor-spaces)和OldGen的总和,大约为20 MB。 永久生成驻留在此堆外部的单独内存区域中,该内存区域通过-XX:MaxPermSize
选项进行控制。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.