Java VM Survivor Old Gen 中的 Survivor、Survivor 2
Java Survivor1, Survivor2 in VM Survivor Old Gen
我认为,在 Java-堆内存模型中
- 幸存者和
- 老一代
是同义词。这将是 Java 放置对象的区域,它在一些 GC 循环中幸存下来。
在 VisualVM 中,我看到,这是两个不同的区域,甚至还有多个 Survivor 区域。
java 内存中的 Survivor 和 Old Gen 区域有什么区别?
编辑:
看来,Survivor(连同Eden)属于Young Gen,
看
幸存者区域有两个,S0和S1。在任何时候,其中之一是从space或到space。
当Minor GC发生时,它从Edenspace收集对象,幸存者被放置在到space.
上一次 GC 中位于 space 的 的对象也被移动到 到 space, 除非他们达到了幸存者阈值,这意味着这个对象是一个长期存在的对象。在这种情况下,它被提升到老一代。
在此之后,幸存者 space 被交换,所以 到 space 总是清楚的。
只有两个幸存者space。在图像中,Spaces 和 Graphs 区域只是相同信息的不同表示。
您可以阅读更多相关内容 here。
我认为,在 Java-堆内存模型中
- 幸存者和
- 老一代
是同义词。这将是 Java 放置对象的区域,它在一些 GC 循环中幸存下来。
在 VisualVM 中,我看到,这是两个不同的区域,甚至还有多个 Survivor 区域。
java 内存中的 Survivor 和 Old Gen 区域有什么区别?
编辑:
看来,Survivor(连同Eden)属于Young Gen,
看
幸存者区域有两个,S0和S1。在任何时候,其中之一是从space或到space。
当Minor GC发生时,它从Edenspace收集对象,幸存者被放置在到space.
上一次 GC 中位于 space 的 的对象也被移动到 到 space, 除非他们达到了幸存者阈值,这意味着这个对象是一个长期存在的对象。在这种情况下,它被提升到老一代。
在此之后,幸存者 space 被交换,所以 到 space 总是清楚的。
只有两个幸存者space。在图像中,Spaces 和 Graphs 区域只是相同信息的不同表示。
您可以阅读更多相关内容 here。