簡體   English   中英

次要GC是何時觸發的?

[英]When was Minor GC triggered?

我搜尋了一下,發現大部分文章都說

“當JVM無法為新對象分配空間時,總是會觸發次要GC。”

但是從visualVM中,我發現次要gc經常發生。 我可以看到伊甸園空間將被改寫,然后,s1的非空之一將被清除。 因此,我認為當eden生成已滿時,不會觸發未成年人gc。 在此處輸入圖片說明

根據您所附的圖表,以下是使用次要GC的原因:

1,在圖中,元空間長時間處於高狀態,因此這導致了完整的GC,而實習生則導致了次要的GC。

2還有一點是,不要因為已分配,已提交,已使用的內存而看左邊的圖,我們不能說確切發生GC的時間,所以請看圖的右邊,如果Eden空間中的已提交內存等於已用內存,然后發生次要GC。

3.因此最終由於1和2原因而發生次要GC。

新對象的分配發生在伊甸園地區。 當Eden區域已滿時,會將幸存者復制到Survivor空間中,並將Eden空間的其余部分丟棄。 當幸存者空間已滿時,對象將被復制到另一個幸存者空間(S0-S1),並且在一定數量的副本(3)之后,連續的幸存者將被復制到堆中。 在分配對象時,這種情況一直發生。 一個主要的GC是當整個堆都被對象清除時,當沒有更多空間將幸存者復制到主堆時被觸發。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM