JVM垃圾回收

安全點

可以中斷線程,進行GC的位置伤锚,一般是方法調用擅笔,循環(huán)處理,異常跳轉等應用程序長時間執(zhí)行的位置屯援。

需要線程去輪詢安全點信息猛们,發(fā)現(xiàn)線程執(zhí)行到該安全點,主動中斷線程


安全區(qū)域

對于無法響應安全點的線程狞洋,例如阻塞弯淘,睡眠線程,使用安全區(qū)域來解決徘铝,安全區(qū)域是指引用關系不會變化的耳胎,是安全點的擴展,線程進入安全區(qū)域會進行標記惕它,隨時可以進行GC


垃圾回收算法

一怕午、按系統(tǒng)線程分類

串行收集:實現(xiàn)容易,效率較高淹魄;無法使用多處理器的優(yōu)勢郁惜,所以此收集適合單處理器機器

并行收集:速度快,效率高甲锡;多線程處理垃圾回收工作兆蕉,但工作線程還是處在暫停階段

并發(fā)收集:不需要暫停工作線程;減少垃圾收集時的停頓時間缤沦;難度在于虎韵,增量的GC標記,如何準確標記

二缸废、按照回收策略分類

復制算法:需要兩倍內存空間包蓝;把內存空間劃為兩個相等的區(qū)域驶社,每次只使用其中一個區(qū)域。垃圾回收時测萎,遍歷當前使用區(qū)域亡电,把正在使用中的對象復制到另外一個區(qū)域中;算法每次只處理正在使用中的對象硅瞧,因此復制成本比較小份乒,同時復制過去以后還能進行相應的內存整理,不會出現(xiàn)“碎片”問題腕唧。

標記-清除算法:先標記或辖,再清除,會出現(xiàn)碎片問題四苇,但是空間利用率比 復制算法高

標記整理算法:標記孝凌,清除后,會讓所有存活對象都往左端空閑的空間進行移動月腋;不會出現(xiàn)碎片問題蟀架,空間利用率高,但是增加STW


垃圾回收器

一榆骚、年輕代

young區(qū)

二片拍、老年代

old區(qū)

三、CMS

過程:初始標記妓肢,并發(fā)標記捌省,重新標記,并發(fā)清除

因為清除是并發(fā)清除碉钠,所以CPU數(shù)量不高時纲缓,CMS對工作線程的影響很大,因為要分出線程資源給垃圾回收線程

無法處理浮動垃圾:在垃圾收集過程中喊废,工作線程還在不斷產生垃圾祝高,這部分只能留到下次GC,同時也因為會不斷生成垃圾污筷,所以Full GC不能等到老年代滿了再觸發(fā)工闺,默認閾值是68%

Full GC時會觸發(fā)碎片整理,這個步驟是無法并發(fā)的瓣蛀,通過jvm參數(shù) -XX:+UseCMSCompactAtFullCollection開關控制陆蟆,默認開啟

四、G1收集器

過程:初始標記惋增,并發(fā)標記叠殷,重新標記(STW),篩選回收(STW)

采用并發(fā)诈皿,標記整理算法溪猿,同時支持年輕代钩杰,老年代纫塌。

將java堆分成大小相等的獨立區(qū)域诊县,Region,邏輯上組成年輕代措左,老年代

整體上是標記整理算法依痊,但是微觀上(兩個Region之間)是復制算法,但最終都能避免碎片的產生

建立了可預測停頓模型怎披,指定在M毫秒的時間段內胸嘁,用在垃圾回收上的時間不超過N毫秒,所以不是掃描整個年輕代凉逛,老年代性宏,而是掃描部分具有高價值的Region,回收需要的時間及能回收到的空間大小状飞。

五毫胜、ZGC單代垃圾回收器

過程:初始標記,并發(fā)標記诬辈,重新標記酵使,并發(fā)轉移準備,初始轉移焙糟,并發(fā)轉移(即復制-回收)

設計目標:停頓時間不超過10ms口渔;停頓時間不會隨著堆的大小,或者活躍對象的大小而增加穿撮;支持8MB~4TB級別的堆(未來支持16TB)缺脉。

ZGC通過著色指針和讀屏障技術,解決了轉移過程中準確訪問對象的問題悦穿,實現(xiàn)了并發(fā)轉移

ZGC在低延遲(TP999 < 200ms)場景中收益較大攻礼;對吞吐量優(yōu)先的場景,ZGC可能并不適合咧党,究其原因有二:第一秘蛔,ZGC是單代垃圾回收器,而CMS是分代垃圾回收器傍衡。單代垃圾回收器每次處理的對象更多深员,更耗費CPU資源;第二蛙埂,ZGC使用讀屏障倦畅,讀屏障操作需耗費額外的計算資源

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市绣的,隨后出現(xiàn)的幾起案子叠赐,更是在濱河造成了極大的恐慌欲账,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芭概,死亡現(xiàn)場離奇詭異赛不,居然都是意外死亡,警方通過查閱死者的電腦和手機罢洲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門踢故,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人惹苗,你說我怎么就攤上這事殿较。” “怎么了桩蓉?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵淋纲,是天一觀的道長。 經常有香客問我院究,道長洽瞬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任儡首,我火速辦了婚禮片任,結果婚禮上,老公的妹妹穿的比我還像新娘蔬胯。我一直安慰自己对供,他們只是感情好,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布氛濒。 她就那樣靜靜地躺著产场,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舞竿。 梳的紋絲不亂的頭發(fā)上京景,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天,我揣著相機與錄音骗奖,去河邊找鬼确徙。 笑死,一個胖子當著我的面吹牛执桌,可吹牛的內容都是我干的鄙皇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼仰挣,長吁一口氣:“原來是場噩夢啊……” “哼伴逸!你這毒婦竟也來了?” 一聲冷哼從身側響起膘壶,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤错蝴,失蹤者是張志新(化名)和其女友劉穎洲愤,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體顷锰,經...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡柬赐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了馍惹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躺率。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖万矾,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情慎框,我是刑警寧澤良狈,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站笨枯,受9級特大地震影響薪丁,放射性物質發(fā)生泄漏。R本人自食惡果不足惜馅精,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一严嗜、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧洲敢,春花似錦漫玄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至壮不,卻和暖如春汗盘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背询一。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工隐孽, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人健蕊。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓菱阵,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绊诲。 傳聞我的和親對象是個殘疾皇子送粱,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內容