ZGC

ZGC介紹

Z Garbage Collector,即ZGC煮纵,基于Region內(nèi)存布局,不設(shè)置分代, 使用了讀屏障, 染色指針和內(nèi)存多重映射等技術(shù)實(shí)現(xiàn)的可并發(fā)標(biāo)記-整理算法的英遭,是一個(gè)可伸縮的庵佣、低延遲的垃圾收集器检柬,主要為了滿足如下目標(biāo)進(jìn)行設(shè)計(jì):

  • 停頓時(shí)間不會超過10ms
  • 停頓時(shí)間不會隨著堆的增大而增大(不管多大的堆都能保持在10ms以下)
  • 可支持幾百M(fèi)服球,甚至幾T的堆大熊钋 (最大支持4T)

和G1開啟很像,用下面參數(shù)即可開啟:

-XX:+UnlockExperimentalVMOptions -XX:+UseZGC

ZGC特性

  • Concurrent(并發(fā)執(zhí)行)
  • Region-based(內(nèi)存基于region斩熊,類似G1)
  • Compacting(壓縮)
  • NUMA-aware(Numa架構(gòu)往枣,一種內(nèi)存頁合并的硬件技術(shù))
  • Using colored pointers(著色指針)
  • Using load barriers(讀屏障)

(1)Concurrent

ZGC只有短暫的STW,大部分的過程都是和應(yīng)用線程并發(fā)執(zhí)行座享,比如最耗時(shí)的并發(fā)標(biāo)記和并發(fā)移動(dòng)過程捕犬。

(2)Region-based

ZGC中沒有新生代和老年代的概念级零,只有一塊一塊的內(nèi)存區(qū)域page,這和G1的region有點(diǎn)像,但和G1不一樣的是岂丘,region的大小更加靈活和動(dòng)態(tài)。zgc的region不會像G1那樣在一開始就被劃分為固定大小的region巢寡。

zgc的region核心亮點(diǎn)就是:動(dòng)態(tài)

動(dòng)態(tài)表現(xiàn)為:

  1. 動(dòng)態(tài)地創(chuàng)建和銷毀饺著。
  2. 動(dòng)態(tài)地決定region的大小。它的最小單位是2MB的一個(gè)塊肠牲。然后每個(gè)region的大小就是是2MB*N就是幼衰。

(3)Compacting

每次進(jìn)行GC時(shí),都會對page進(jìn)行壓縮操作缀雳,所以完全避免了CMS算法中的碎片化問題渡嚣。

(4)NUMA-aware

(2)Colored Pointers

是zgc的一個(gè)核心概念。你還可以叫它tag pointers肥印,version pointers识椰。

和以往的標(biāo)記算法比較不同,CMS和G1會在對象的對象頭進(jìn)行標(biāo)記深碱,而ZGC是標(biāo)記對象的指針腹鹉。


在這里插入圖片描述

一個(gè)pointer共64bit。開始的18bit暫時(shí)沒有被用到(以后有可能要用)敷硅,然后是四個(gè)bit功咒,分別表示Finalizable、Remapped绞蹦、Marked1力奋、Marked0,這是gc過程中每個(gè)對象的狀態(tài)坦辟。最后42bit是用來存儲對象的地址刊侯。

(3)Using load barriers

因?yàn)樵跇?biāo)記和移動(dòng)過程中,GC線程和應(yīng)用線程是并發(fā)執(zhí)行的锉走,所以存在這種情況:對象A內(nèi)部的引用所指的對象B在標(biāo)記或者移動(dòng)狀態(tài)滨彻,為了保證應(yīng)用線程拿到的B對象是對的,那么在讀取B的指針時(shí)會經(jīng)過一個(gè) “l(fā)oad barriers” 讀屏障挪蹭,這個(gè)屏障可以保證在執(zhí)行GC時(shí)亭饵,數(shù)據(jù)讀取的正確性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梁厉,一起剝皮案震驚了整個(gè)濱河市辜羊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌词顾,老刑警劉巖八秃,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異肉盹,居然都是意外死亡昔驱,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門上忍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來骤肛,“玉大人纳本,你說我怎么就攤上這事∫傅撸” “怎么了繁成?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長淑玫。 經(jīng)常有香客問我巾腕,道長,這世上最難降的妖魔是什么混移? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任祠墅,我火速辦了婚禮,結(jié)果婚禮上歌径,老公的妹妹穿的比我還像新娘。我一直安慰自己亲茅,他們只是感情好回铛,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著克锣,像睡著了一般茵肃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袭祟,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天验残,我揣著相機(jī)與錄音,去河邊找鬼巾乳。 笑死您没,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胆绊。 我是一名探鬼主播氨鹏,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼压状!你這毒婦竟也來了仆抵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤种冬,失蹤者是張志新(化名)和其女友劉穎镣丑,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體娱两,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡莺匠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谷婆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片慨蛙。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辽聊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出期贫,到底是詐尸還是另有隱情跟匆,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布通砍,位于F島的核電站玛臂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏封孙。R本人自食惡果不足惜迹冤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望虎忌。 院中可真熱鬧泡徙,春花似錦、人聲如沸膜蠢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挑围。三九已至礁竞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間杉辙,已是汗流浹背模捂。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜘矢,地道東北人狂男。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像硼端,于是被迫代替她去往敵國和親并淋。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

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