jvm 垃圾收集器發展

2022-10-01 12:27:14 字數 617 閱讀 6944

在jdk1.3.1之前,j**a虛擬機器僅僅能使用serial收集器。 serial收集器是乙個單執行緒的收集器,但它的「單執行緒」的意義並不僅僅是說明它只會使用乙個cpu或一條收集執行緒去完成垃圾收集工作,更重要的是在它進行垃圾收集時,必須暫停其他所有的工作執行緒,直到它收集結束。

-xx:+useserialgc

parallel收集器也稱吞吐量收集器,相比serial收集器,parallel最主要的優勢在於使用多執行緒去完成垃圾清理工作,這樣可以充分利用多核的特性,大幅降低gc時間。

-xx:+useparallelgc -xx:+useparalleloldgc

cms收集器在minor gc時會暫停所有的應用執行緒,並以多執行緒的方式進行垃圾**。在full gc時不再暫停應用執行緒,而是使用若干個後台執行緒定期的對老年代空間進行掃瞄,及時**其中不再使用的物件。

-xx:+useparnewgc -xx:+useconcmarksweepgc

g1收集器(或者垃圾優先收集器)的設計初衷是為了盡量縮短處理超大堆(大於4gb)時產生的停頓。相對於cms的優勢而言是記憶體碎片的產生率大大降低。

-xx:+useg1gc

JVM垃圾收集器之CMS收集器

cms concurrent mark sweep 收集器是一種以獲取最短 停頓時間為目標的收集器。1 cms使用的演算法 cms使用的演算法為 標記 清除 演算法 2 執行過程4步驟 a 初始標記 cms initial mark b 併發標記 cms concurrent mark c 重新標記...

JVM的垃圾收集器

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

JVM之垃圾收集器

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