小型GC是否也在幸存者空间和伊甸园空间中进行?

时间:2016-06-14 09:41:52

标签: java garbage-collection

我知道在Young代的Eden空间中进行了小型GC。在GC中存活的对象移动到幸存者空间(From)。一旦,(From)超出空间,对象就会移动到Survivor空间(To)。 Minor GC是否也在Survivor空间上进行?

2 个答案:

答案 0 :(得分:1)

幸存者空间是年轻一代的一部分,因此将对幸存者空间进行较小的gc。如果一个对象存在许多次要gc,那么它将被移动到旧一代。

了解更多详情:http://www.cubrid.org/blog/dev-platform/understanding-java-garbage-collection/

答案 1 :(得分:0)

从内存分配的开始发生以下操作:

让我们假设两个幸存者空间为X,Y以摆脱困惑

  1. 首次启动应用程序时,创建的对象将移动到Eden空间。此阶段X,Y为空。
  2. 当Eden空间已满时,在Eden空间中发生次要GC并将活动对象发送到X幸存者空间。在这个阶段,X有对象,但Y是空的。
  3. 当下一个小型GC发生时,它发生在Eden以及X Survivor空间中,剩余的活动对象被发送到Y救世主空间。在这个阶段X是空的,但Y有活物。
  4. 所以每次重复这些步骤时,你都可以参考link以便更好地理解,从上面的解释来看,确实是小型GC也会在幸存者空间中发生。