垃圾收集器

Serial收集器

優(yōu)點(diǎn):簡(jiǎn)單而高效(與其他收集器的單線程相比)。Serial收集器由于沒有線程交互的開銷,自然可以獲得很高的單線程收集效率。

缺點(diǎn):Stop The World

新生代采用復(fù)制算法,老年代采用標(biāo)記-整理算法锋边。


ParNew收集器:

ParNew收集器其實(shí)就是Serial收集器的多線程版本,除了使用多線程進(jìn)行垃圾收集外编曼,其余行為(控制參數(shù)豆巨、收集算法、回收策略等等)和Serial收集器完全一樣掐场。

新生代采用復(fù)制算法往扔,老年代采用標(biāo)記-整理算法


Parallel Scavenge收集器:

Parallel Scavenge 收集器類似于ParNew 收集器,是Server?模式(內(nèi)存大于2G熊户,2個(gè)cpu)下的默認(rèn)收集器

特點(diǎn):

Parallel Scavenge收集器關(guān)注點(diǎn)是吞吐量(高效率的利用CPU)萍膛。

所謂吞吐量就是CPU中用于運(yùn)行用戶代碼的時(shí)間與CPU總消耗時(shí)間的比值

CMS等垃圾收集器的關(guān)注點(diǎn)更多的是用戶線程的停頓時(shí)間(提高用戶體驗(yàn))。



Serial Old收集器:

Serial收集器的老年代版本

Parallel Old收集器:

Parallel Scavenge收集器的老年代版本嚷堡。

CMS收集器(-XX:+UseConcMarkSweepGC(主要是old區(qū)使用)):

CMS(Concurrent Mark Sweep——標(biāo)記-清除)收集器是一種以獲取最短回收停頓時(shí)間為目標(biāo)的收集器卦羡。

它而非常符合在注重用戶體驗(yàn)的應(yīng)用上使用,它是HotSpot虛擬機(jī)第一款真正意義上的并發(fā)收集器,它第一次實(shí)現(xiàn)了讓垃圾收集線程與用戶線程(基本上)同時(shí)工作

過程:


優(yōu)點(diǎn):

并發(fā)收集绿饵、低停頓

缺點(diǎn):

1.對(duì)CPU資源敏感(會(huì)和服務(wù)搶資源)

2.無法處理浮動(dòng)垃圾(在java業(yè)務(wù)程序線程與垃圾收集線程并發(fā)執(zhí)行過程中又產(chǎn)生的垃圾,這種浮動(dòng)垃圾只能等到下一次gc再清理了)瓶颠;

3.它使用的回收算法-“標(biāo)記-清除”算法會(huì)導(dǎo)致收集結(jié)束時(shí)會(huì)有大量空間碎片產(chǎn)生

G1收集器(-XX:+UseG1GC):

G1 (Garbage-First)是一款面向服務(wù)器的垃圾收集器,主要針對(duì)配備多顆處理器及大容量?jī)?nèi)存的機(jī)器. 以極高概率滿足GC停頓時(shí)間要求的同時(shí),還具備高吞吐量性能特征.


G1將Java堆劃分為多個(gè)大小相等的獨(dú)立區(qū)域(Region)拟赊,雖保留新生代和老年代的概念,但不再是物理隔閡了粹淋,它們都是(可以不連續(xù))Region的集合吸祟。

分配大對(duì)象(直接進(jìn)Humongous區(qū),專門存放短期巨型對(duì)象桃移,不用直接進(jìn)老年代屋匕,避免Full GC的大量開銷)不會(huì)因?yàn)闊o法找到連續(xù)空間而提前觸發(fā)下一次GC。

特點(diǎn):

并行與并發(fā):

G1能充分利用CPU借杰、多核環(huán)境下的硬件優(yōu)勢(shì)过吻,使用多個(gè)CPU(CPU或者CPU核心)來縮短Stop-The-World停頓時(shí)間。部分其他收集器原本需要停頓Java線程來執(zhí)行GC動(dòng)作蔗衡,G1收集器仍然可以通過并發(fā)的方式讓java程序繼續(xù)執(zhí)行纤虽。

分代收集:

雖然G1可以不需要其他收集器配合就能獨(dú)立管理整個(gè)GC堆,但是還是保留了分代的概念

空間整合:

與CMS的“標(biāo)記--清理”算法不同绞惦,G1從整體來看是基于“標(biāo)記整理”算法實(shí)現(xiàn)的收集器逼纸;從局部上來看是基于“復(fù)制”算法實(shí)現(xiàn)的。

可預(yù)測(cè)停頓:


G1收集器的運(yùn)作大致分為以下幾個(gè)步驟:

初始標(biāo)記(initial mark济蝉,STW):

在此階段杰刽,G1 GC 對(duì)根進(jìn)行標(biāo)記。該階段與常規(guī)的 (STW)年輕代垃圾回收密切相關(guān)

并發(fā)標(biāo)記(Concurrent Marking):

G1 GC 在整個(gè)堆中查找可訪問的(存活的)對(duì)象

最終標(biāo)記(Remark王滤,STW):

該階段是 STW 回收贺嫂,幫助完成標(biāo)記周期

篩選回收(Cleanup,STW):

篩選回收階段首先對(duì)各個(gè)Region的回收價(jià)值和成本進(jìn)行排序淑仆,根據(jù)用戶所期望的GC停頓時(shí)間來制定回收計(jì)劃涝婉,這個(gè)階段其實(shí)也可以做到與用戶程序一起并發(fā)執(zhí)行,但是因?yàn)橹换厥找徊糠諶egion蔗怠,時(shí)間是用戶可控制的墩弯,而且停頓用戶線程將大幅提高收集效率

G1垃圾收集分類:

YoungGC:

1.新對(duì)象進(jìn)入Eden區(qū)

2.存活對(duì)象拷貝到Survivor區(qū)

3.存活時(shí)間達(dá)到年齡閾值時(shí),對(duì)象晉升到Old區(qū)

MixedGC:

1.不是FullGC寞射,回收所有的Young和部分Old(根據(jù)期望的GC停頓時(shí)間確定old區(qū)垃圾收集的優(yōu)先順序)

2.global?concurrent?marking (全局并發(fā)標(biāo)記)

? ? 2.1.Initial marking phase:標(biāo)記GC Root渔工,STW

? ? 2.2?Root?region?scanning?phase:標(biāo)記存活Region

????2.3.Concurrent?marking?phase:標(biāo)記存活的對(duì)象

? ? 2.4?Remark phase :重新標(biāo)記,STW

? ? 2.5.Cleanup phase:部分STW

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市桥温,隨后出現(xiàn)的幾起案子引矩,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旺韭,死亡現(xiàn)場(chǎng)離奇詭異氛谜,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)区端,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門值漫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人织盼,你說我怎么就攤上這事杨何。” “怎么了沥邻?”我有些...
    開封第一講書人閱讀 157,852評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵危虱,是天一觀的道長。 經(jīng)常有香客問我唐全,道長埃跷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評(píng)論 1 284
  • 正文 為了忘掉前任芦瘾,我火速辦了婚禮捌蚊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘近弟。我一直安慰自己缅糟,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評(píng)論 6 386
  • 文/花漫 我一把揭開白布祷愉。 她就那樣靜靜地躺著窗宦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪二鳄。 梳的紋絲不亂的頭發(fā)上赴涵,一...
    開封第一講書人閱讀 49,929評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音订讼,去河邊找鬼髓窜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛欺殿,可吹牛的內(nèi)容都是我干的寄纵。 我是一名探鬼主播,決...
    沈念sama閱讀 39,076評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼脖苏,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼程拭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起棍潘,我...
    開封第一講書人閱讀 37,803評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤恃鞋,失蹤者是張志新(化名)和其女友劉穎崖媚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恤浪,經(jīng)...
    沈念sama閱讀 44,265評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡畅哑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了资锰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敢课。...
    茶點(diǎn)故事閱讀 38,716評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绷杜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情濒募,我是刑警寧澤鞭盟,帶...
    沈念sama閱讀 34,395評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站瑰剃,受9級(jí)特大地震影響齿诉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜晌姚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評(píng)論 3 316
  • 文/蒙蒙 一粤剧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧挥唠,春花似錦抵恋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唤锉,卻和暖如春世囊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窿祥。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評(píng)論 1 266
  • 我被黑心中介騙來泰國打工株憾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人晒衩。 一個(gè)月前我還...
    沈念sama閱讀 46,488評(píng)論 2 361
  • 正文 我出身青樓嗤瞎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親浸遗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子猫胁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評(píng)論 2 350

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