Java Survivor1,VM Survivor Old Gen中的Survivor2

时间:2015-10-08 18:55:07

标签: java memory-management garbage-collection jvm java-8

我想,在Java-Heap-Memory模型中

  • 幸存者和
  • Old Gen

是同义词。那将是Java放置Object的区域,它在一些GC循环中幸存下来 在VisualVM中我看到,这是两个不同的区域,即使有多个幸存者区域。

java内存中Survivor和Old Gen区域之间有什么区别?enter image description here

修改

似乎幸存者(与伊甸园一起)属于 Young Gen , 看到 enter image description here

1 个答案:

答案 0 :(得分:6)

有两个幸存者区域,S0和S1。在任何时候,其中一个是从空间到空间

当发生次要GC时,它从Eden空间收集对象,幸存者被放置在到空间中。

以前GC中的对象, from space 中的对象也会移动到 to space ,除非它们已达到幸存者阈值,这意味着此对象是一个长寿的对象。在这种情况下,它将提升到旧代。

在此之后,幸存者空间被交换,因此到空间总是清晰的。

只有两个幸存者空间。在图像中, Spaces Graphs 区域只是相同信息的不同表示。

您可以阅读有关此here的更多信息。