Java學(xué)習(xí)筆記---垃圾收集器

如果說收集算法是內(nèi)存回收的方法論吱雏,那么垃圾收集器就是內(nèi)存回收的具體實現(xiàn)。

1、Serial收集器

Serial收集器是最基本锋拖、發(fā)展歷史最悠久的收集器。這個收集器是一個單線程收集器祸轮,但它的“單線程”的意義并不僅僅說明它只會使用一個CPU或者一條收集線程去完成垃圾收集工作兽埃,更重要的是在它進行垃圾收集時,必須暫停其他工作線程适袜,知道它收集結(jié)束柄错。

 特點:CPU利用率最高,停頓時間及用戶等待時間長痪蝇。
 使用場景:小型應(yīng)用(client應(yīng)用)

2鄙陡、ParNew收集器

ParNew收集器是Serial的多線程版本。

使用場景:server應(yīng)用

3躏啰、Parallel Scavenge收集器

Parallel Scavenge收集器是一個新生代收集器趁矾,它也是使用復(fù)制算法的收集器,又是并行的多線程收集器给僵。Parallel Scavenge收集器的目標是達到一個可控制的吞吐量毫捣。所謂吞吐量就是CPU用于運行用戶代碼的時間是CPU總消耗時間的比值详拙,即吞吐量=運行用戶代碼時間 / (運行用戶代碼時間+垃圾收集時間),虛擬機總共運行了100分鐘蔓同,其中垃圾收集花掉1分鐘饶辙,那吞吐量及時99%。

特點:停頓時間短斑粱,回收效率高弃揽,對吞吐量要求高。
適用場景:大型應(yīng)用则北、大規(guī)模數(shù)據(jù)采集等矿微。

4、CMS(Concurrent Mark Sweep)收集器

CMS收集器是一種以獲取最短收回停頓時間為目標的收集器尚揣。CMS收集器是基于“標記--清除”算法實現(xiàn)的涌矢,分為四個步驟:

(1)初始標記
(2)并發(fā)標記
(3)重新標記
(4)并發(fā)清除

初始標記、重新標記這兩個步驟仍需要暫停用戶線程快骗。初始標記僅僅只是標記一下GC Roots能直接關(guān)聯(lián)到的對象娜庇,速度很快。

并發(fā)標記階段就是GC Roots Tracing(查找不可用對象)的過程方篮,而重新標記階段則是為了修正并發(fā)標記期間因用戶程序繼續(xù)運作而導(dǎo)致標記產(chǎn)生變動的那一部分對象的標記記錄名秀,這個階段的停頓時間一般會比初始標記階段稍長一些,但遠比并發(fā)標記的時間段藕溅。

由于整個過程中耗時最長的并發(fā)標記和并發(fā)清除過程收集器線程都可以與用戶線程一起工作泰偿,所以,從總體上來說蜈垮,CMS收集器的內(nèi)存回收過程是于用戶線程一起并發(fā)執(zhí)行的耗跛。

特點:并發(fā)收集、低停頓
使用場景:服務(wù)端應(yīng)用

5攒发、G1收集器

G1(Garbage-First)收集器是當(dāng)今收集器技術(shù)發(fā)展的最前沿成果之一调塌。G1是一款面向服務(wù)端應(yīng)用的垃圾收集器。
與其他GC收集器相比惠猿,G1具備如下特點:
(1)并行與并發(fā):G1能充分利用多CPU羔砾、多核環(huán)境下的硬件優(yōu)勢,使用多個CPU來縮短用戶線程停頓時間偶妖,部分其他收集器原本需要停頓Java線程執(zhí)行的GC動作姜凄,G1收集器仍然可以通過并發(fā)的方式讓Java程序繼續(xù)執(zhí)行。
(2)分代收集:與其他收集器一樣趾访,分代概念在G1中依然得以保留态秧。
(3)空間整合:與CMS的“標記--清理”算法不同,G1從整體來看是基于“標記--整理”算法實現(xiàn)的收集器扼鞋。
(4)可預(yù)測的停頓:這是G1相對于CMS的另一大優(yōu)勢申鱼,建立可預(yù)測的停頓時間模型愤诱,能讓使用者明確指定在一個長度為M毫秒的時間片段內(nèi),消耗在垃圾收集上的時間不得超過N毫秒捐友。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末淫半,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子匣砖,更是在濱河造成了極大的恐慌科吭,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件猴鲫,死亡現(xiàn)場離奇詭異砌溺,居然都是意外死亡,警方通過查閱死者的電腦和手機变隔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蟹倾,“玉大人匣缘,你說我怎么就攤上這事∠侍模” “怎么了肌厨?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長豁陆。 經(jīng)常有香客問我柑爸,道長,這世上最難降的妖魔是什么盒音? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任表鳍,我火速辦了婚禮,結(jié)果婚禮上祥诽,老公的妹妹穿的比我還像新娘譬圣。我一直安慰自己,他們只是感情好雄坪,可當(dāng)我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布厘熟。 她就那樣靜靜地躺著,像睡著了一般维哈。 火紅的嫁衣襯著肌膚如雪绳姨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天阔挠,我揣著相機與錄音飘庄,去河邊找鬼。 笑死购撼,一個胖子當(dāng)著我的面吹牛竭宰,可吹牛的內(nèi)容都是我干的空郊。 我是一名探鬼主播,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼切揭,長吁一口氣:“原來是場噩夢啊……” “哼狞甚!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起廓旬,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤哼审,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后孕豹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涩盾,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年励背,在試婚紗的時候發(fā)現(xiàn)自己被綠了春霍。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡叶眉,死狀恐怖址儒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情衅疙,我是刑警寧澤莲趣,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站饱溢,受9級特大地震影響喧伞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绩郎,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一潘鲫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肋杖,春花似錦次舌、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至浅萧,卻和暖如春逐沙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洼畅。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工吩案, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人帝簇。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓徘郭,卻偏偏與公主長得像靠益,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子残揉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,658評論 2 350

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