JVM垃圾收集器之CMS收集器

2021-08-07 06:59:20 字數 555 閱讀 7767

cms(concurrent mark sweep) 收集器是一種以獲取最短**停頓時間為目標的收集器。

1、cms使用的演算法

cms使用的演算法為「標記-清除」演算法

2、執行過程4步驟

a、初始標記(cms  initial mark)

b、併發標記(cms concurrent mark)

c、重新標記(cms remark)

d、併發清楚 (cms concurrent sweep)

其中初始標記、重新標記都需要「stop the word」。初始標記僅僅只是標記一下gc roots 能直接關聯的物件,速度快;併發標記階段

是進行gc roots  tracing 的過程;重新標記則是為了修正併發標記期間因使用者程式繼續執行而導致標記產生變動的第一部分物件的標記記錄,這個階段的停頓時間一般比初始標記的時間長一些,單遠比併發標記短。

3、從整體行來說cms收集器的記憶體**過程是與使用者執行緒一起併發執行的,執行過程如下圖

JVM之垃圾收集器

垃圾 演算法 標記 清除 先標記後統一清除 缺點 1.執行效率不穩定 表現在假設j a堆中存在大量需要被 物件,此時標記 清除操作執行效率隨著物件的數量增加而降低 2.產生大量碎片化空間,導致記憶體不連續,無法為大物件分配空間。標記 複製 將記憶體分為兩塊,每次只使用一塊,當這塊記憶體用完了,就將還...

JVM的垃圾收集器

parnew收集器 parnew相比serial,則是較多的執行在server模式下的虛擬機器中首選的新生代收集器。而且還有乙個重要的原因,除了serial外,目前只有他能與cms收集器 jdk1.5推出,是hotspot第一款真正意義上的併發收集器 搭配工作。parnew可以使用 xx paral...

jvm垃圾收集器介紹

以上是 虛擬機器中的 7 個垃圾收集器,連線表示垃圾收集器可以配合使用。是 serial 收集器的老年代版本,也是給 client 模式下的虛擬機器使用。如果用在 server 模式下,它有兩大用途 是 parallel sc enge 收集器的老年代版本。cms concurrent mark s...