2012-03-27 107 views
2

我正在使用jdk1.6。 I configureg Xmx = 2G,Xms = 2G,NewSize = MaxNewSize = 660mjdk1.6内存布局

我启用详细的gc。我看到这我不undertsnaidng:

PSYoungGen  total 608256K, used 32440K 
eden space 540672K, 6% used 
from space 67584K, 0% used 
to space 67584K, 0% used 

根据我的配置YoungGen大小为675840MB。 由于younGen =伊甸园+两个幸存者空间,

GC日志说,我的YoungGen大小= 608256K这不是我配置的。 此外,如果我添加伊甸园空间和两个幸存者空间我得到 540672K + 67584K + 67584K = 675840K

这也是错误的。

但是Eden + 1幸存者空间= 540672K + 67584K = 675840K,我已经配置了。 那么这是否意味着YoungGen = Eden + 1幸存者空间?我觉得有两个幸存者空间 ,对吗?

请解释一下。

感谢您

回答

1

有两种生存空间,但只有一个在任何给定时间使用;每次有年轻一代的垃圾收集时,物体会从一个幸存者空间来回移动到另一个。因此,您配置的年轻一代空间等于伊甸园空间加一个幸存者空间;另一个基本上只是开销。