java JVM针对年轻代和老年代的GC算法有什么区别?

发布时间:2022-09-14 08:10 已有: 人阅读

  对于新一代,大多数对象的生存时间非常短,每次只有少量对象存活。您可以选择复制算法,只需复制少量对象即可完成收集。对于旧一代,对象的生存时间较长,因此可以选择标记清除算法或标记整理算法。代收算法是商业虚拟机的主要恢复算法。

  创建新对象通常在新一代中分配,而占用大量连续内存的字符串和大型数组则在旧一代中分配。这是为了避免在回收旧一代时复制太多内存,降低效率。

  虚拟机为每个对象定义一个年龄计数器。第一次创建对象时,它将直接分配给新一代。每次垃圾回收后,年龄都会增加一岁,当年龄达到临界值时,就会移到老年。

热门推荐
  • 微软推出Windows Terminal 1.0开源 微软推出Windows Terminal 1.0开源 Windows Terminal是一个开源的、基于选项卡UI风格的终端应用程序,最初发布于微软的Build 2019活动。所谓基于选项卡的UI,就是你可以在一个选项卡中打……[详细]
图文推荐
  • 苹果将??于本月晚些时候推出首款采用Mini-LE
  • iPad 2021,我们所知道的一切
  • 尽管Mini-LED面板供应受限,本月仍将推出新的