GC之7大垃圾收集器详解(下)
GC之7大垃圾收集器詳解
目錄
第一部分請參見: GC之7大垃圾收集器詳解(上)
6. GC之CMS收集器
CMS收集器(ConcurrentMarkSweep:并發標記清除)是一種以獲取最短回收停頓時間為目標的收集器。
適合應用在互聯網站或者B/S系統的服務器上,這類應用尤其重視服務器的響應速度,希望系統停頓時間最短。
CMS非常適合堆內存大、CPU核數多的服務器端應用,也是G1出現之前大型應用的首選收集器。
Concurrent Mark Sweep 并發標記清除,并發收集低停頓,并發指的是與用戶線程一起執行
開啟該收集器的JVM參數:-XX:+UseConcMarkSreepGC,開啟該參數后會自動將-XX:+UseParNewGC打開
開啟該參數后,使用ParNew(Young區用)+CMS(Old區用)+SerialOld的收集器組合,SerialOld將作為CMS出錯的后備收集器
CMS四步驟
由于耗時最長的并發標記和并發清除過程中,垃圾收集線程可以和用戶一起并發工作,所以總體上來看CMS收集器的內存回收和用戶線程是一起并發地執行。
CMS簡圖:
CMS優點:并發收集低停頓
CMS缺點:
STW的方式進行上次GC,從而造成較大停頓時間。
7. GC之SerialOld收集器
SerialOld是Serial垃圾收集器老年代版本,它同樣是個單線程的收集器,使用標記-整理算法,這個收集器也主要是運行在Client默認的java虛擬機默認的年老代垃圾收集器。
在Server模式下,主要有兩個用途(了解,版本己經到8及以后):
8. GC之如何選擇垃圾收集器
9. GC之G1收集器
G1收集器內容比較重要,也比較多,另開一篇:GC之G1垃圾收集器
總結
以上是生活随笔為你收集整理的GC之7大垃圾收集器详解(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GC之7大垃圾收集器详解(上)
- 下一篇: GitHub超实用操作