【发布时间】:2014-01-11 10:37:59
【问题描述】:
JVM 选项:
-Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8
正如预期的那样,JVM 将为 JVM 堆分配近 20MB 的内存。
但是请看下面的 GC 细节:
psyounggen总共9216kg ,二手4612K [0x00000000FF600000,0x0000000100000000,0x0000000100000000,0x0000000100000000,0x0000000100000000)
伊甸园空间8192k ,56%使用了[0x00000000FFF600000,0x0000000000FFA812d8,0x00000000ffe00000)
从空间1024k ,0%使用[0x00000000FF00000,0x000000000000000000000 0x000000000100000000)到空间 1024k,0%使用[0x00000000FFFE00000,0x0000000000FF00000)
PSOldGen 总计 10240K,使用了 8192K [0x00000000fec00000, 0x00000000ff600000, 0x00000000ff600000)
对象空间 10240K,已使用 80% [0x00000000fec00000,0x00000000ff400020,0x00000000ff600000) PSPermGen 总计 21248K,已使用 3033K [0x00000000f9a00000, 0x00000000faec0000, 0x00000000fec00000)
对象空间 21248K,已使用 14% [0x00000000f9a00000,0x00000000f9cf6708,0x00000000faec0000)
年轻一代的大小与选项 -Xmn 的预期一致。 年轻一代中eden空间和幸存者空间的大小比率与选项-XX:SurvivorRatio=8的预期一致。 但是看来 JVM 总共分配了将近 40MB 内存,所以很奇怪。为什么JVM总分配内存大于-Xmx?
环境:
操作系统:win7 64 位
JDK:构建 1.6.0_43-b01 64 位
【问题讨论】:
标签: java memory jvm-arguments