
文章插圖
G1(Garbage First)垃圾收集器是目前垃圾回收技術(shù)最前沿的成果之一 。
G1 同 CMS 垃圾回收器一樣,關(guān)注最小時(shí)延的垃圾回收器,適合大尺寸堆內(nèi)存的垃圾收集 。但是,G1 最大的特點(diǎn)是引入分區(qū)的思路,弱化了分代的概念,合理利用垃圾收集各個(gè)周期的資源,解決了其他收集及 CMS 的很多缺陷 。
官方推薦使用 G1 來(lái)代替 CMS 。
通過(guò)本篇,我們可以了解掌握 G1 收集器的基本概念、堆內(nèi)存、回收流程、GC模式、推薦用例等核心知識(shí) 。

文章插圖
目錄
- G1 收集器概述
- G1 的堆內(nèi)存算法
- 1. G1 之前的 JVM 內(nèi)存模型
- 2. G1收集器的內(nèi)存模型
- G1回收流程
- 1. G1 收集器的階段(步驟)
- G1 的 GC 模式
- 1. YoungGC 年輕代收集
- 2. mixed gc
- G1 的推薦用例
G1(Garbage First) 垃圾收集器,是關(guān)注最小時(shí)延的垃圾回收器,也同樣適合大尺寸堆內(nèi)存的垃圾收集,官方推薦選擇使用 G1 來(lái)替代 CMS。
1. G1 收集器的最大特點(diǎn)
- G1最大的特點(diǎn)是引入分區(qū)的思路,弱化了分代的概念 。
- 合理利用垃圾收集各個(gè)周期的資源,解決了其他收集器、甚至 CMS 的眾多缺陷 。
- 算法: G1 基于標(biāo)記--整理算法, 不會(huì)產(chǎn)生空間碎片,在分配大對(duì)象時(shí),不會(huì)因無(wú)法得到連續(xù)的空間,而提前觸發(fā)一次 FULL GC。
- 停頓時(shí)間可控: G1可以通過(guò)設(shè)置預(yù)期停頓時(shí)間(Pause Time)來(lái)控制垃圾收集時(shí)間避免應(yīng)用雪崩現(xiàn)象 。
- 并行與并發(fā):G1 能更充分的利用 CPU 多核環(huán)境下的硬件優(yōu)勢(shì),來(lái)縮短 stop the world 的停頓時(shí)間 。
- CMS 中,堆被分為 PermGen,YoungGen,OldGen ;而 YoungGen 又分了兩個(gè) survivo 區(qū)域 。在 G1 中,堆被平均分成幾個(gè)區(qū)域 (region),在每個(gè)區(qū)域中,雖然也保留了新老代的概念,但是收集器是以整個(gè)區(qū)域?yàn)閱挝皇占?。
- G1 在回收內(nèi)存后,會(huì)立即同時(shí)做合并空閑內(nèi)存的工作;而 CMS,則默認(rèn)是在 STW(stop the world)的時(shí)候做 。
- G1 會(huì)在 Young GC 中使用;而 CMS 只能在 O 區(qū)使用 。
G1 垃圾收集算法,主要應(yīng)用在多 CPU 大內(nèi)存的服務(wù)中,在滿足高吞吐量的同時(shí),盡可能的滿足垃圾回收時(shí)的暫停時(shí)間 。
在以下場(chǎng)景中,G1 更適合:
- 服務(wù)端多核 CPU、JVM 內(nèi)存占用較大的應(yīng)用(至少大于4G);
- 應(yīng)用在運(yùn)行過(guò)程中,會(huì)產(chǎn)生大量?jī)?nèi)存碎片、需要經(jīng)常壓縮空間;
- 想要更可控、可預(yù)期的 GC 停頓周期,防止高并發(fā)下應(yīng)用雪崩現(xiàn)象 。

文章插圖
- 新生代:伊甸園區(qū) (eden space) + 2個(gè)幸存區(qū)
- 老年代
- 持久代 (perm space):JDK1.8 之前
- 元空間 (metaspace):JDK1.8 之后取代持久代

文章插圖
2.1 G1 堆內(nèi)存結(jié)構(gòu)堆內(nèi)存會(huì)被切分成為很多個(gè)固定大小區(qū)域(Region),每個(gè)是連續(xù)范圍的虛擬內(nèi)存 。
經(jīng)驗(yàn)總結(jié)擴(kuò)展閱讀
- 官宣簽名超有愛(ài)的 暗示自己戀愛(ài)的簽名
- 獨(dú)特而有個(gè)性的簽名 超愛(ài)的簡(jiǎn)短簽名又內(nèi)涵
- 樂(lè)視超級(jí)電視怎么樣 樂(lè)視x60有哪些優(yōu)勢(shì)
- 樂(lè)視50寸超級(jí)電視好嗎 售價(jià)2499元
- 小米電視4a和4c哪個(gè)好 兩者區(qū)別詳解
- 等離子電視機(jī)好還是液晶電視機(jī)好 兩者的區(qū)別詳解
- 等離子電視機(jī)出故障怎么辦 維修方法詳解
- 圖文全面詳解 Kafka 架構(gòu)和原理機(jī)制
- 無(wú)錫有什么好吃的小吃 無(wú)錫超經(jīng)典的8種名小吃排行榜
- 室內(nèi)耐陰的盆栽植物有哪些 超耐陰的8種室內(nèi)植物排行榜
