簡體   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