【问题标题】:Java Survivor1, Survivor2 in VM Survivor Old GenVM Survivor Old Gen 中的 Java Survivor1、Survivor2
【发布时间】:2016-01-06 13:08:11
【问题描述】:

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

  • 幸存者和
  • 老一代

是同义词。这将是 Java 放置对象的区域,它在一些 GC 周期中幸存下来。
在 VisualVM 中我看到,这是两个不同的区域,甚至还有多个 Survivor 区域。

java内存中Survivor和Old Gen区域有什么区别?

编辑:

看来,Survivor(连同Eden)属于Young Gen, 看

【问题讨论】:

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


    【解决方案1】:

    有两个幸存者区域,S0 和 S1。在任何时候,其中之一是 from spaceto space

    当 Minor GC 发生时,它会从 Eden 空间收集对象,并将幸存者放置在 to 空间中。

    上一次 GC 中的对象,位于 from 空间 中的对象也被移动到 to 空间,除非它们已达到幸存者阈值,这意味着该对象是一个长寿的对象。在这种情况下,它被提升到老一代。

    在这之后,幸存者空间被交换,所以 to 空间总是清晰的。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 2012-06-03
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多