JVM常見的七種垃圾收集器的簡單比較

JVM常見的七種垃圾收集器的簡單比較

1、Serial收集器曾經是虛擬機新生代收集的唯一選擇,是一個單線程的收集器,在進行收集垃圾時,必須stop the world,它是虛擬機運行在Client模式下的默認新生代收集器。

2、Serial Old是Serial收集器的老年代版本,同樣是單線程收集器,使用標記整理算法

3、ParNew收集器是Serial收集器的多線程版本,許多運行在Server模式下的虛擬機中首選的新生代收集器,除Serial外,只有它能與CMS收集器配合工作。

 

4、Parallel Scavenge收集器也是新生代收集器,使用複製算法又是並行的多線程收集器,它的目標是達到一個可控制的運行用戶代碼跟(運行用戶代碼+垃圾收集時間)的百分比值。

5、Parallel Old收集器是Parallel Scavenge收集器的老年代版本,使用多線程和標記整理算法。

 

6、Concurrent Mark Sweep 收集器是一種以獲得最短回收停頓時間爲目標的收集器,基於標記清除算法。

過程如下:初始標記,併發標記,重新標記,併發清除,優點是併發收集,低停頓,缺點是對CPU資源非常敏感,無法處理浮動垃圾,收集結束會產生大量空間碎片。

 

7、G1收集器是基於標記整理算法實現的,不會產生空間碎片,可以精確地控制停頓,將堆劃分爲多個大小固定的獨立區域,並跟蹤這些區域的垃圾堆積程度,在後臺維護一個優先列表,每次根據允許的收集時間,優先回收垃圾最多的區域(Garbage First)。

 

 原文鏈接:http://blog.csdn.net/lingzhm/article/details/47174391

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