Full GC 和 Minor GC芍锚,傻傻分不清楚

這篇文章主要來介紹下 JVM 中的各種 GC昔园,讓大家來搞清楚這幾個概念。

大家可能見到過很多的 GC 名詞并炮,比如:Minor GC默刚、Young GC、Full GC逃魄、Old GC荤西、Major GC、Mixed GC伍俘。

這么多概念邪锌,想想都頭疼,到底各種亂七八糟的 GC 指的是什么癌瘾?

下面先引用 R 大在知乎上的回答:

針對 HotSpot VM 的實現(xiàn)觅丰,它里面的 GC 其實準確分類有兩種:

  • Partial GC(局部 GC): 并不收集整個 GC 堆的模式
    • Young GC: 只收集 Young Gen 的 GC,Young GC 還有種說法就叫做 Minor GC
    • Old GC: 只收集 old gen 的 GC柳弄,只有垃圾收集器 CMS 的 concurrent collection 是這個模式
    • Mixed GC: 收集整個 Young Gen 以及部分 old gen 的 GC舶胀,只有垃圾收集器 G1 有這個模式
  • Full GC: 收集整個堆,包括新生代碧注,老年代,永久代(在 JDK 1.8 及以后糖赔,永久代被移除萍丐,換為 metaspace 元空間)等所有部分的模式

接下來讓我們再來了解下各個 GC:

(1)Minor GC / Young GC

首先我們先來看下 Minor GC / Young GC,大家都知道放典,新生代(Young Gen)也可以稱之為年輕代逝变,這兩個名詞是等價的。那么在年輕代中的 Eden 內(nèi)存區(qū)域被占滿之后奋构,實際上就需要觸發(fā)年輕代的 GC壳影,或者是新生代的 GC。

此時這個新生代 GC弥臼,其實就是所謂的 Minor GC宴咧,也可以稱之為 Young GC,這兩個名詞径缅,相信大家就理解了掺栅,說白了烙肺,就專門針對新生代的 GC。

(2)Old GC

所謂的老年代 GC氧卧,稱之為 Old GC 更加合適一些桃笙,因為從字面意義上就可以理解,這就是所謂的老年代 GC沙绝。

但是在這里之所以我們把老年代 GC 稱之為Full GC搏明,其實也是可以的,只不過是一個字面意思的多種不同的說法闪檬。

為了更加精準的表述這個老年代 GC 的含義星著,可以把老年代 GC 稱之為 Old GC。

(3)Full GC

對于 Full GC谬以,其實這里有一個更加合適的說法强饮,就是說 Full GC 指的是針對新生代、老年代为黎、永久代的全體內(nèi)存空間的垃圾回收邮丰,所以稱之為 Full GC。

從字面意思上也可以理解铭乾,F(xiàn)ull 就是整體的意思剪廉,所以就是對 JVM 進行一次整體的垃圾回收,把各個內(nèi)存區(qū)域的垃圾都回收掉炕檩。

(4)Major GC

還有一個名詞是所謂的 Major GC斗蒋,這個其實一般用的比較少,他也是一個非常容易混淆的概念笛质。

有些人把 Major GC 跟 Old GC等價起來泉沾,認為他就是針對老年代的 GC,也有人把 Major GC 和 Full GC 等價起來妇押,認為他是針對 JVM 全體內(nèi)存區(qū)域的GC跷究。

所以針對這個容易混淆的概念,建議大家以后少提敲霍。如果聽到有人說這個 Major GC的概念俊马,大家可以問清楚,他到底是想說 Old GC 呢肩杈?還是 Full GC 呢柴我?

(5)Mixed GC

Mixed GC 是 G1 中特有的概念,其實說白了扩然,主要就是說在 G1 中艘儒,一旦老年代占據(jù)堆內(nèi)存的 45%(-XX:InitiatingHeapOccupancyPercent:設(shè)置觸發(fā)標記周期的 Java 堆占用率閾值,默認值是 45%。這里的Java 堆占比指的是 non_young_capacity_bytes彤悔,包括 old + humongous)嘉抓,就要觸發(fā) Mixed GC,此時對年輕代和老年代都會進行回收晕窑。Mixed GC 只有 G1 中才會出現(xiàn)抑片。

參考

https://tech.meituan.com/2016/09/23/g1.html

https://www.zhihu.com/question/41922036/answer/93079526

《深入理解Java虛擬機:JVM高級特性與最佳實踐(第3版)》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市杨赤,隨后出現(xiàn)的幾起案子敞斋,更是在濱河造成了極大的恐慌,老刑警劉巖疾牲,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件植捎,死亡現(xiàn)場離奇詭異,居然都是意外死亡阳柔,警方通過查閱死者的電腦和手機焰枢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來舌剂,“玉大人济锄,你說我怎么就攤上這事』糇” “怎么了荐绝?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長避消。 經(jīng)常有香客問我低滩,道長,這世上最難降的妖魔是什么岩喷? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任恕沫,我火速辦了婚禮,結(jié)果婚禮上纱意,老公的妹妹穿的比我還像新娘昏兆。我一直安慰自己,他們只是感情好妇穴,可當我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著隶债,像睡著了一般腾它。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上死讹,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天瞒滴,我揣著相機與錄音,去河邊找鬼。 笑死妓忍,一個胖子當著我的面吹牛虏两,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播世剖,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼定罢,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旁瘫?” 一聲冷哼從身側(cè)響起祖凫,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酬凳,沒想到半個月后惠况,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡宁仔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年稠屠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翎苫。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡权埠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拉队,到底是詐尸還是另有隱情弊知,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布粱快,位于F島的核電站秩彤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏事哭。R本人自食惡果不足惜漫雷,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鳍咱。 院中可真熱鬧降盹,春花似錦、人聲如沸谤辜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丑念。三九已至涡戳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間脯倚,已是汗流浹背渔彰。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工嵌屎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人恍涂。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓宝惰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親再沧。 傳聞我的和親對象是個殘疾皇子尼夺,可洞房花燭夜當晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容