我正在使用jdk1.6。我配置
Xmx = 2G,Xms = 2G,NewSize = MaxNewSize = 660m
我启用了详细gc。我看到的不是我所理解的:
PSYoungGen total 608256K, used 32440K
eden space 540672K, 6% used
from space 67584K, 0% used
to space 67584K, 0% used
根据我的配置,YoungGen大小为675840MB。
因为younGen = Eden +两个幸存者空间,
GC日志说我的YoungGen大小= 608256K,这不是我配置的大小。
另外,如果我添加伊甸园空间和两个幸存者空间,我会得到
540672K + 67584K + 67584K = 675840K
这也是错误的。
但是伊甸园+ 1个幸存者空间= 540672K + 67584K = 675840K,这是我配置的。
那么这是否意味着YoungGen = Eden + 1 Survivor空间?我觉得有
两个幸存者空间,对吗?
请给我解释一下。
感谢您
最佳答案
有两个幸存者空间,但在任何给定时间仅使用一个。每当有年轻一代的垃圾收集器时,对象就会从一个幸存者空间来回移动到另一个幸存者空间。因此,您配置的年轻一代空间等于伊甸园空间加上一个幸存者空间;另一个基本上只是开销。