FullGC和MinorGC是什么

這篇文章主要介紹了Full GC和Minor GC是什么的相關(guān)知識(shí),內(nèi)容詳細(xì)易懂,操作簡(jiǎn)單快捷,具有一定借鑒價(jià)值,相信大家閱讀完這篇Full GC和Minor GC是什么文章都會(huì)有所收獲,下面我們一起來(lái)看看吧。

成都創(chuàng)新互聯(lián)是一家專業(yè)提供邳州企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為邳州眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

大家可能見(jiàn)到過(guò)很多的 GC 名詞,比如:Minor GC、Young GC、Full GC、Old GC、Major GC、Mixed GC。

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

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

針對(duì) HotSpot VM 的實(shí)現(xiàn),它里面的 GC 其實(shí)準(zhǔn)確分類有兩種:

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

接下來(lái)讓我們?cè)賮?lái)了解下各個(gè) GC:

(1)Minor GC / Young GC

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

此時(shí)這個(gè)新生代 GC,其實(shí)就是所謂的 Minor GC,也可以稱之為 Young GC,這兩個(gè)名詞,相信大家就理解了,說(shuō)白了,就專門(mén)針對(duì)新生代的 GC。

(2)Old GC

所謂的老年代 GC,稱之為 Old GC 更加合適一些,因?yàn)閺淖置嬉饬x上就可以理解,這就是所謂的老年代 GC。

但是在這里之所以我們把老年代 GC 稱之為Full GC,其實(shí)也是可以的,只不過(guò)是一個(gè)字面意思的多種不同的說(shuō)法。

為了更加精準(zhǔn)的表述這個(gè)老年代 GC 的含義,可以把老年代 GC 稱之為 Old GC。

(3)Full GC

對(duì)于 Full GC,其實(shí)這里有一個(gè)更加合適的說(shuō)法,就是說(shuō) Full GC 指的是針對(duì)新生代、老年代、永久代的全體內(nèi)存空間的垃圾回收,所以稱之為 Full GC。

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

(4)Major GC

還有一個(gè)名詞是所謂的 Major GC,這個(gè)其實(shí)一般用的比較少,他也是一個(gè)非常容易混淆的概念。

有些人把 Major GC 跟 Old GC等價(jià)起來(lái),認(rèn)為他就是針對(duì)老年代的 GC,也有人把 Major GC 和 Full GC 等價(jià)起來(lái),認(rèn)為他是針對(duì) JVM 全體內(nèi)存區(qū)域的GC。

所以針對(duì)這個(gè)容易混淆的概念,建議大家以后少提。如果聽(tīng)到有人說(shuō)這個(gè) Major GC的概念,大家可以問(wèn)清楚,他到底是想說(shuō) Old GC 呢?還是 Full GC 呢?

(5)Mixed GC

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

關(guān)于“Full GC和Minor GC是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對(duì)“Full GC和Minor GC是什么”知識(shí)都有一定的了解,大家如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:FullGC和MinorGC是什么
文章出自:http://www.muchs.cn/article26/ipppcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)公司、品牌網(wǎng)站制作、網(wǎng)站維護(hù)、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司