Young GC和Full GC分別在什么情況下會發生?


Young GC的觸發時機:Young GC其實一般就是在新生代的Eden區域滿了之后就會觸發,采用復制算法來回收新生代的垃圾。

Full GC的觸發時機如下:

(1)發生Young GC之前進行檢查,如果“老年代可用的連續內存空間” < “新生代歷次Young GC后升入老年代的對象總和的平均大小”,說明本次Young GC后可能升入老年代的對象大小,可能超過了老年代當前可用內存空間
此時必須先觸發一次Old GC給老年代騰出更多的空間,然后再執行Young GC。

(2)執行Young GC之后有一批對象需要放入老年代,此時老年代就是沒有足夠的內存空間存放這些對象了,此時必須立即觸發一次Old GC。

(3)老年代內存使用率超過了92%,也要直接觸發Old GC,當然這個比例是可以通過參數調整的。

概括成一句話,就是老年代空間也不夠了,沒法放入更多對象了,這個時候務必執行Old GC對老年代進行垃圾回收。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM