3 Java虛擬機之垃圾收集器

本文是根據《深入理解Java虛擬機》自己整理的筆記,僅供個人學習。

 

如果說收集算法是內存回收的方法論,那麼垃圾收集器就是內存回收的具體實現。

 

1 serial 收集器

單線程的收集器,進行垃圾收集時,暫停其他所有工作線程直到收集結束。

優點:沒有線程交互的開銷     缺點:stop the world

 

2 ParNew 收集器

serial收集器的多線程版本,多條線程進行垃圾回收。

3 Parallel Scavenge 收集器

Parallel Scavenge 收集器的目的是儘可能達到一個高的吞吐量。即 CPU用於運行用戶代碼的時間 | CPU總消耗時間的比值。

4 Serial Old 收集器

單線程收集器,使用標記-整理算法。

如上圖3-6.

5 Parallel Old收集器

使用多線程和標記-整理算法。

6 CMS收集器

 CMS是一種以獲得最短回收停頓時間爲目標的收集器。收集過程分爲4個步驟:

   (1)初始標記

   (2)併發標記

   (3)重新標記

   (3)併發清除

優點:併發收集 低停頓

7 G1收集器

G1收集器的運作大概分爲以下幾個步驟:

(1) 初始標記

(2) 併發標記

(3)最終標記

(4)篩選回收

 

 

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