minor GC 過程解析

minor GC 是發生在堆內存-新生代中的GC,過程如下:(圖片來自文獻,侵刪)

 

1.首先,所有新創建對象放在eden區域,兩個survivor區域開始爲空。

 2.當新創建的對象將eden區域裝滿,一次minor GC 被觸發。

3.存活對象被移動到第一塊survivor 區域(S0),不存活對象隨着eden區域的清理而被刪除。

4.下一次minor GC ,eden區域和上次一樣,存活對象被移動到survivor區域,不存活對象被清理刪除,和上次不同的是,這次存活對象被移動到另一個survivor區域(S1)。另外,S0中上次minor GC的倖存對象,年齡+1,然後被一起移動到S1區域。一旦所有的倖存對象都被移動到S1,S0和eden區域都會被清理掉。注意此時S1區域有不同年齡的倖存對象。

5.下一次minor GC,和之前的一輪一樣。不同的是,這一次S0和S1變換了角色,存活的對象被移動到S0,上次倖存的對象年齡+1,eden和S1區域被清空。

 

to be continue....

 

 

參考文獻:https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章