千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 分代收集算法和分區收集算法區別

分代收集算法和分區收集算法區別

來源:千鋒教育
發布人:syq
時間: 2022-09-08 18:10:54 1662631854

  分代收集算法

  當前主流 VM 垃圾收集都采用”分代收集”(Generational Collection)算法, 這種算法會根據 對象存活周期的不同將內存劃分為幾塊, 如 JVM 中的 新生代、老年代、永久代,這樣就可以根據 各年代特點分別采用最適當的 GC 算法。

6

  在新生代-復制算法:

  每次垃圾收集都能發現大批對象已死, 只有少量存活. 因此選用復制算法, 只需要付出少量 存活對象的復制成本就可以完成收集。

  在老年代-標記整理算法:

  因為對象存活率高、沒有額外空間對它進行分配擔保, 就必須采用“標記—清理”或“標 記—整理”算法來進行回收, 不必進行內存復制, 且直接騰出空閑內存。

  1、ParNew:一款多線程的收集器,采用復制算法,主要工作在 Young 區,可以通過 -XX:ParallelGCThreads 參數來控制收集的線程數,整個過程都是 STW 的,常與 CMS 組合使用。

  2、CMS:以獲取最短回收停頓時間為目標,采用“標記-清除”算法,分 4 大步進行垃圾收集,其中初始標記和重新標記會 STW ,多數應用于互聯網站或者 B/S 系統的服務器端上,JDK9 被標記棄用,JDK14 被刪除。

  分區收集算法

  分區算法則將整個堆空間劃分為連續的不同小區間, 每個小區間獨立使用, 獨立回收. 這樣做的 好處是可以控制一次回收多少個小區間 , 根據目標停頓時間, 每次合理地回收若干個小區間(而不是 整個堆), 從而減少一次 GC 所產生的停頓。

  G1: 一種服務器端的垃圾收集器,應用在多處理器和大容量內存環境中,在實現高吞吐量的同時,盡可能地滿足垃圾收集暫停時間的要求。

  ZGC:JDK11 中推出的一款低延遲垃圾回收器,適用于大內存低延遲服務的內存管理和回收,SPECjbb 2015 基準測試,在 128G 的大堆下,最大停頓時間才 1.68 ms,停頓時間遠勝于 G1 和 CMS。

tags:
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
亚洲日本一本在线 | 中文字幕不卡精品视频在线 | 亚洲日韩国产精品乱 | 免费萌白酱国产一区二区 | 中文字幕制服丝袜一区二区 | 在线播放的午夜网 |