繁体   English   中英

是什么导致java minor gc

[英]what causes java minor gc

我说的是UseParNewGC。 我对java gc minor集合的理解是这样的。 何时,jvm检测到eden已满(或无法满足分配请求)

  1. 它停止所有应用程序线程
  2. 计算伊甸园和一个幸存者空间中的活动对象,并将它们移动到另一个
  3. 如果没有足够的空间来移动,或者幸存者中的物体已经足够陈旧,它将升级为旧一代。
  4. 将伊甸园和清洗过的幸存者标记为空
  5. 恢复应用程序线程。

完全正确吗? 是否存在即使eden未满也会触发次要gc的情况?

我认为您的流程正确。 在某些情况下,主要的GC可能是由于充满eden空间以外的原因而触发的,例如对System.gc()或RMI的调用。 在这种情况下,还将运行次要GC。

何时,jvm检测到eden已满(或者它无法满足分配请求)。 但是它会动态调整生成的大小,以满足收集器的某些目标。 主要是暂停时间和GC中花费的CPU时间的一部分。

因此,这些目标间接地决定了次要收藏的发生频率。 主要集合还可能触发次要集合,以减少对短暂生命的年轻对象的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM