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