JVMGC——垃圾收集器的分類

垃圾收集器是垃圾回收算法的體現

JVM中垃圾收集器分爲三類:

1.串行收集器       2.並行收集器      3.併發收集器

串行收集器


用單線程處理所有垃圾回收工作,因此無需多線程交互,所以效率比較高

適合單處理器機器。串行垃圾回收時會暫停程序

-XX:+UseSerialGC


並行收集器

 

對年輕代進行並行垃圾回收

-XX:+UseParallelGC

 

並行收集器在jdk5開始引入,jdk6進行了增強—可以對年老代進行並行收集。

(對年老代並行收集)

-XX:+UseParallelOldGC  

 

設置並行垃圾回收的線程數

-XX:ParallelGCThreads=<N>  


併發收集器:

 

可以保證大部分工作都併發進行(應用不停止)

適合對響應時間要求比較高的中、大規模應用

-XX:UseConcMarkSweepGC


1. Serial收集器 ——  -XX:+UseSerialGC

單線程會收集器,收集時會暫停所有工作線程,使用複製收集算法,在虛擬機運行在Client模式默認的新生代收集器

2. ParNew收集器 ——  -XX:+UseParNewGC

Serial的多線程版本,虛擬機運行在Server模式的默認新生代收集器

3. Parallel Scavenge收集器(PS收集器) ——  -XX:+UseParallelGC

多線程收集器,也是使用複製算法,以吞吐量最大化(GC時間佔總運行時間最小)爲目標,是新生代收集器

4. Serial Old收集器

單線程收集器,使用標記-整理算法,是老年代的收集器

5. Parallel Old收集器  ——    -XX:+UseParallelOldGC

年老代吞吐量優化收集器,使用多線程和標記-整理


沒有最好的收集器,只有最合適的收集器,根據實際場景選擇合適的收集器纔是王道

發佈了39 篇原創文章 · 獲贊 12 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章