色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java面試中常問的垃圾收集器CMS和G1是什么

黃文隆2年前18瀏覽0評論

java面試中常問的垃圾收集器CMS和G1是什么?

面試中經常被問到CMS和G1垃圾收集器,故來總結下!

CMS收集器:concurrent mark and sweep,并發標記和清除,追求最少的時間停留的收集器!

CMS執行收集步驟:

1,初始標記:快速標記GC roots能直接關聯到的對象,速度快;需要STW(stop the world)

2,并發標記:進行GC Roots Tracing;(時間長,但是可以和用戶線程并行執行)

3,重新標記:標記并發標記期間,用戶程序繼續運行而導致的標記變化(stop the world)

4,并發清除:并行執行垃圾清除,這一步也會產生浮動垃圾;(時間長,但是可以和用戶線程并行執行)

優點:并發執行效率好,停頓時間短;

缺點:

1,并發清除的時候產生浮動垃圾;

2,標記-清除算法,產生大量的內存碎片,很容易引發full gc;

3,默認啟用的處理線程數為(CPU的個數+3)/4,即至少使用25%的CPU,多的話會是100%;

CMS主要針對老年代的垃圾收集,通常和ParNewGC(新生代收集)一起使用;

G1:將整個堆內存分為大小相等的多個獨立region區,保留新生代,老年代概念,卻沒有做物理隔離,G1記錄每個region中的對象活性,根據用戶設置的停頓時間,選擇活性更低的region進行回收,這樣能降低停頓時間;

G1新生代收集:新生代達到比例的時候進行收集,根據統計信息動態調整Eden和Survivor的大小,合理利用內存;

G1老年代收集:

1,初始標記:跟CMS類似

2,并發標記:跟CMS類似

3,最終標記:跟CMS類似

4,篩選回收:對所有region中的回收成本進行排序,同時根據用戶設定的停頓時間來指定回收計劃,并發清除對象(stop the world)

G1優點:

1,停頓時間可預測:根據用戶設定的停頓時間進行stop the world和gc;

2,region的回收具有優先級:對象收集更有效率和針對性;

3,標記-整理算法:不再有內存碎片產生;

下個帖子將會詳細講一下jvm中的相關內容,需要的朋友一定要關注哦。。

java的垃圾回收,java面試中常問的垃圾收集器CMS和G1是什么