垃圾收集器

1、Serial (串行)收集器:單線程收集器,會停掉應用程序的線程。程序會假死

新生代複製算法,老年代採用標記-整理算法。

2、ParNew收集器:多線程收集器,還是會停止應用程序的線程

3、Parallel Scavenge (JDK8 默認):Server 模式,內存大於2個G,2個cpu,關注點事吞吐量,高效率的利用CPU

CMS關注點事用戶線程的停頓時間(提高用戶體驗)
吞吐量:CPU運行用戶代碼的時間與CPU總消耗時間的比值。
 

概念:

並行:多個垃圾收集線程一起工作,但此時用戶線程依然處於等待狀態,適合後臺處理弱等弱交互場景。
併發:要好過戶線程與垃圾收集線程同時執行,用戶程序在繼續運行,而垃圾收集器運行在另一個CPU
(可能會交替執行,適合Web應用)

CMS收集器: 併發收集器。第一次讓應用程序和GC同時工作。
缺點:對CPU比較敏感,會和服務搶資源。
           無法處理浮動垃圾。

jinfo -flags 14036


4、G1 可以收集更大的內存,針對多個處理器,大容量內存的機器。
  G1將 Java 堆劃分爲多個大小相等的獨立區域(Region),
Humongous 存放短期巨型對象。不用直接進老年代,避免FulllGc 大量開銷

G1 與CMS的區別:

G1建立可預測的停頓時間,比如10ms,根據用戶所期望的GC停頓時間來制定回收計劃。
G1不是FullGC 而是MixedGc

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章