日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Java垃圾回收之老年代垃圾收集器

發布時間:2023/11/28 生活经验 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java垃圾回收之老年代垃圾收集器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、Serial Old 收集器(-XX: +UseSerialOldGC, 標記-整理算法)

  • 單線程收集,進行垃圾收集時,必須暫停所有工作線程
  • 簡單高效,Client模式下默認的老年代收集器

?

2、Parallel Od收集器(-XX: +UseParallelOldGC? ,標記-整理)

  • JDK6 之后才有這個收集器,多線程,吞吐量優先,如果注重CPU資源和吞吐量的場合,可以使用這個組合 Parallel Scavenge + Parallel Old 收集器

?

 

3、CMS收集器(這個收集器,占據了老年代收集器的半壁江山。-XX:+ UseConcMarkSweepGC ,標記-清除算法,有碎片產生)

  優點:幾乎可以和用戶線程做到同時工作,本質還是要STOP-THE WORLD,只是停頓時間短

  如果在老年代中存活更多存活率高的對象,使用CMD收集器更適合。

  收集流程:(一邊掉垃圾一邊打掃)

  初始標記:stop-the-world,從垃圾回收的根對象開始,只是掃描和根對象有關聯的對象并做標記。雖然暫停了所有的線程工作,但是停頓時間很短。

  并發標記:并發追隨標記,程序不會停頓

  并發預清理:查找執行并發標記階段從年輕代晉升到老年代的對象

  重新標記:暫停虛擬機,掃描CMS堆中的剩余對象

  并發清理:清理垃圾對象,程序不會停頓

  并發重置:重置CMS收集器的數據結構

?

4、G1收集器(-XX:+UseG1GC , 復制+標記-整理算法)

Garbage First 收集器的特點

  • 并發和并行
  • 分代收集
  • 空間整合
  • 可預測的停頓

說明:這個收集器的內存布局與其他收集器有很大區別,將整個JAVA堆內存劃分成多個大小相等的Region,年輕代和老年代不再物理隔離

5、額外知識:JDK11 有 Epsilon GC 和 ZGC (研發階段)?

?

6、問題:為什么年輕代中的Parallel Scavenge收集器不能和老年代中的CMS收集器一起工作呢?

答:因為Parallel Scavenge收集器(G1)都沒有使用傳統的GC收集器代碼框架,都是另外獨立開發的。

而Serial,parNew,CMS都有使用了部分相同的收集器代碼框架,所有他們三個是兼容的。

(CMS是hotsport在jdk5才出來的真正意義上是并行收集器,第一次讓垃圾收集線程和用戶線程一起工作。)

總結

以上是生活随笔為你收集整理的Java垃圾回收之老年代垃圾收集器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。