为了账号安全,请及时绑定邮箱和手机立即绑定

G1 GC 中的 Full GC 与 Major GC

G1 GC 中的 Full GC 与 Major GC

慕勒3428872 2023-10-13 16:39:08
我刚刚开始学习G1 GC。这是我的另一个问题的延续:Full GC in G1 GC我看到一篇文章说 full gc 和 Major gc(老一代集合)是两个不同的东西,full gc 是单线程的。我对此感到困惑。如果两者是不同的事情,那么 full gc 如何收集垃圾,即 G1 GC 中的 full gc 期间执行哪些算法或阶段或步骤。
查看完整描述

1 回答

?
皈依舞

TA贡献1851条经验 获得超3个赞

对于 G1,有一种方法可以区分这两者(这并不适用于所有 GC 算法)。

G1 使用堆区域(通常大小为 1Mb)。这些内存区域被组合在一起,形成年轻代和老一代作为单独的逻辑区域。对于老一代集合,G1 将尝试通过简单地回收不再有任何实时数据的区域(非常便宜)来回收足够的空间,或者将实时数据从人口稀疏的区域复制到空区域(从而最大化该区域中的实时数据量)地区)。

然而,如果 G1 不能以这种方式回收足够的空间,它必须回退到完全压缩集合。

这可以解释主要收集和完整GC之间的区别。


查看完整回答
反对 回复 2023-10-13
  • 1 回答
  • 0 关注
  • 91 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信