JVM垃圾收集器與記憶體分配策略

2022-08-23 07:45:07 字數 842 閱讀 2698

軟引用弱引用

虛引用老年代

主動中斷

-xx:maxgcpausemillis 設定最大停頓時間(毫秒)

-xx:gctimeratio 設定吞吐量大小(0-100)

-xx:useadaptivesizepolicy

配合最大停頓時間,或吞吐量來使用.僅需要設定-xmx

2.併發標記

3.重新標記

4.併發清除

缺點併發處理,則垃圾**時需要預留記憶體供使用者執行緒使用,jdk1.5預設68%即會觸發gc,jdk1.6預設值為92%,

-xx:cmsinitiatingoccupancyfraction

來設定閥值

標記-清除演算法

可**的停頓

在g1收集器中,有乙個關鍵的概念,remembered set,每乙個region都乙個對應的remembered set,每當程式對reference型別資料進行了寫操作時,虛擬機會產生乙個write barrier暫時中斷寫操作,檢查reference引用的物件是否處於不同的region中,如果是,則會通過cardtable將相關引用資訊記錄到被引用物件所屬的region中的remembered set中.

當進行記憶體**時,gc跟節點列舉範圍中加入remembered set 以保證不全堆掃瞄也不會遺漏

運作流程

併發標記

最終標記

篩選**

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.產生大量碎片化空間,導致記憶體不連續,無法為大物件分配空間。標記 複製 將記憶體分為兩塊,每次只使用一塊,當這塊記憶體用完了,就將還...