Java 虛擬機垃圾收集器

下面給出基于JDK 1.7 Update 14之后的HotSpot虛擬機的所有收集器如下圖所示:

圖片2.png

1.Serial收集器:

使用一個CPU或一條收集線程去完成垃圾收集工作槐雾,在進行垃圾收集的時候必須暫停其它所有的工作線程袍嬉,直到它收集結束杈曲。

特點:單線程,簡單高效,沒有多線程交互的開銷疏咐。

年代:新生;

算法:復制算法脐供。

2.ParNew收集器:

Serial收集器的多線程版本浑塞。

除了Serial收集器,目前只有ParNew收集器能與CMS收集器配合工作政己。

特點:多線程酌壕;

年代:新生、老年歇由;

算法:新生代-復制算法卵牍;老年代-標記-整理算法。

3.Parallel Scavenge收集器:

擁有自適應調節(jié)策略印蓖;

特點:并行辽慕,目標是達到一個可控制的吞吐量

年代:新生;

算法:復制算法赦肃。

4.Serial Old收集器:

Serial收集器的老年代版本溅蛉;

特點:單線程;

年代:老年代他宛;

算法:標記-整理船侧;

5.Parallel Old收集器:

Parallel Scavenge收集器的老年代版本;

特點:多線程厅各;

年代:老年代镜撩;

算法:標記-整理算法。

6.CMS收集器:

以獲取最短回收停頓時間為目標;

特點:并發(fā)收集袁梗、低停頓宜鸯;

年代:老年代;

算法:標記-清除算法遮怜;

運作過程:

(1)初始標記:(需要stop the world)標記GC Roots能直接關聯(lián)到的對象淋袖;
(2)并發(fā)標記:進行GC Roots Tracing的過程,耗時長锯梁;
(3)重新標記:(需要stop the world)修正并發(fā)標記期間因用戶程序繼續(xù)運作而導致標記產生變動的那一部分對象的標記記錄即碗;
(4)并發(fā)清除:耗時長;

缺點:

(1)對CPU資源非常敏感陌凳;
(2)無法處理浮動垃圾剥懒;(并發(fā)處理階段產生的垃圾)
(3)大量碎片產生;

7.G1收集器:

特點:
(1)并發(fā)與并行合敦;
(2)分代收集初橘;
(3)空間整合;
(4)可預測的停頓充岛;

年代:新生壁却,老年;

算法:從整體來看是基于“標記-整理”算法裸准,從局部(兩個Region之間)是基于“復制”算法實現(xiàn)展东;G1運作期間不會產生內存碎片。

G1收集器之所以能建立可預測的停頓時間模型炒俱,是因為它可以有計劃地避免在整個Java堆中進行全區(qū)域的垃圾收集盐肃。G1跟蹤各個Region里面的垃圾堆積的價值大小(回收所獲得的空間大小以及回收所需時間的經(jīng)驗值)权悟,在后臺維護一個優(yōu)先列表砸王,每次根據(jù)允許的收集時間,優(yōu)先回收價值最大的Region峦阁。

步驟:
(1)初始標記:標記GC Roots能直接關聯(lián)到的對象谦铃,并且修改TAMS(Next Top at Next Start)的值,讓下一階段用戶程序并發(fā)運行時榔昔,能在正確可用的Region中創(chuàng)建新的對象驹闰;需要停頓線程,但耗時短撒会;
(2)并發(fā)標記:從GC Roots開始對堆中對象進行可達性分析嘹朗,找出存活對象;耗時長诵肛,可并發(fā)執(zhí)行屹培;
(3)最終標記:修正上一階段因用戶線程運作而導致標記產生變動的那一部分的記錄,記錄在線程Remembered Set Log里面,最終把數(shù)據(jù)整合到Remembered Set中褪秀;需要停頓線程蓄诽,但可并行執(zhí)行;
(4)篩選回收:首先對各個Region中的回收價值和成本進行排序媒吗,根據(jù)用戶所期望的GC停頓時間來制定回收計劃若专;并發(fā)執(zhí)行。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末蝴猪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子膊爪,更是在濱河造成了極大的恐慌自阱,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件米酬,死亡現(xiàn)場離奇詭異沛豌,居然都是意外死亡,警方通過查閱死者的電腦和手機赃额,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門加派,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人跳芳,你說我怎么就攤上這事芍锦。” “怎么了飞盆?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵娄琉,是天一觀的道長。 經(jīng)常有香客問我吓歇,道長孽水,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任城看,我火速辦了婚禮女气,結果婚禮上,老公的妹妹穿的比我還像新娘测柠。我一直安慰自己炼鞠,他們只是感情好,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布轰胁。 她就那樣靜靜地躺著簇搅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪软吐。 梳的紋絲不亂的頭發(fā)上瘩将,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音,去河邊找鬼姿现。 笑死肠仪,一個胖子當著我的面吹牛,可吹牛的內容都是我干的备典。 我是一名探鬼主播异旧,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼提佣!你這毒婦竟也來了吮蛹?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤拌屏,失蹤者是張志新(化名)和其女友劉穎潮针,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體倚喂,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡每篷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了端圈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片焦读。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖舱权,靈堂內的尸體忽然破棺而出矗晃,到底是詐尸還是另有隱情,我是刑警寧澤宴倍,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布喧兄,位于F島的核電站,受9級特大地震影響啊楚,放射性物質發(fā)生泄漏吠冤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一恭理、第九天 我趴在偏房一處隱蔽的房頂上張望拯辙。 院中可真熱鬧,春花似錦颜价、人聲如沸涯保。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽夕春。三九已至,卻和暖如春专挪,著一層夾襖步出監(jiān)牢的瞬間及志,已是汗流浹背片排。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留速侈,地道東北人率寡。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像倚搬,于是被迫代替她去往敵國和親冶共。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容