我正在使用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空间?我觉得有
两个幸存者空间,对吗?

请给我解释一下。

感谢您

最佳答案

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

10-06 11:16