为什么我们需要Young Generation中的3个区域来进行垃圾收集?

时间:2018-04-17 03:47:01

标签: java garbage-collection jvm

我知道年轻一代分为伊甸园,从,到。 但有人可以向我解释,如果我们只有2个区域,比如第1区,第2区吗?

我认为我们仍然可以只用2个区域复制垃圾收集,如下所示。

  1. 新对象来了=>把它们放在第一个
  2. 当第一个已满时,将实时复制到第二个并删除第一个
  3. 再次出现新对象=>把它们放在第二个
  4. 当第二个已满时,将实时复制到第一个并在第二个时删除它们 等等。
  5. 那么,为什么我们甚至需要一个额外的(伊甸园)区域?

    性能更好吗? 提前谢谢。

1 个答案:

答案 0 :(得分:3)

在你的计划中,对象不能占据Young Gen的一半以上,所以50%的Young Gen记忆总是被浪费掉。

分隔To和From空间通常小于Eden。这有助于减少内存开销,同时保留快速复制收集器的优势。