java scavenge_请概述一下Java中都有哪些垃圾收集器
1、Serial(串行GC)收集器
Serial收集器是一個新生代收集器,單線程執行,使用復制算法。它在進行垃圾收集時,必須暫停其他所有的工作線程(用戶線程)。是Jvm
client模式下默認的新生代收集器。對于限定單個CPU的環境來說,Serial收集器由于沒有線程交互的開銷,專心做垃圾收集自然可以獲得最高的單線程收集效率。
2、ParNew(并行GC)收集器
ParNew收集器其實就是serial收集器的多線程版本,除了使用多條線程進行垃圾收集之外,其余行為與Serial收集器一樣。
3、Parallel Scavenge(并行回收GC)收集器
Parallel Scavenge收集器也是一個新生代收集器,它也是使用復制算法的收集器,又是并行多線程收集器。parallel
Scavenge收集器的特點是它的關注點與其他收集器不同,CMS等收集器的關注點是盡可能地縮短垃圾收集時用戶線程的停頓時間,而parallel
Scavenge收集器的目標則是達到一個可控制的吞吐量。吞吐量= 程序運行時間/(程序運行時間 +
垃圾收集時間),虛擬機總共運行了100分鐘。其中垃圾收集花掉1分鐘,那吞吐量就是99%。
4、Serial Old(串行GC)收集器
Serial
Old是Serial收集器的老年代版本,它同樣使用一個單線程執行收集,使用“標記-整理”算法。主要使用在Client模式下的虛擬機。
5、Parallel Old(并行GC)收集器
Parallel Old是Parallel Scavenge收集器的老年代版本,使用多線程和“標記-整理”算法。
6、CMS(并發GC)收集器
Concurrent Mark Sweep 收集器是一種以獲得最短回收停頓時間為目標的收集器,基于標記清除算法。
過程如下:初始標記,并發標記,重新標記,并發清除,優點是并發收集,低停頓,缺點是對CPU資源非常敏感,無法處理浮動垃圾,收集結束會產生大量空間碎片。
7、G1收集器
G1收集器是基于標記整理算法實現的,不會產生空間碎片,可以精確地控制停頓,將堆劃分為多個大小固定的獨立區域,并跟蹤這些區域的垃圾堆積程度,
在后臺維護一個優先列表,每次根據允許的收集時間,優先回收垃圾最多的區域(Garbage First)。
本篇文章是由武漢java培訓為您呈現,希望給您帶來更多更好的文章
總結
以上是生活随笔為你收集整理的java scavenge_请概述一下Java中都有哪些垃圾收集器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 评估公司备案需要提供资料(评估公司备案)
- 下一篇: java布尔多少字节,在Java中将字节