国产精品无码一区二区三区太,亚洲一线产区二线产区区别,欧美A区,人妻jealousvue人妻

×

java虛擬機(jī)垃圾收集器

  • 作者:新網(wǎng)
  • 來源:新網(wǎng)
  • 瀏覽:100
  • 2018-04-26 15:53:54

對象的存活時(shí)間有長有短,所以對于存活時(shí)間長的對象,可以避免不必要的開銷。這樣我們就把內(nèi)存分成新生代和老年代,下面和小編一起來了解一下吧。

 t01e13bc12995716371.jpg

<div>         對象的存活時(shí)間有長有短,所以對于存活時(shí)間長的對象,可以避免不必要的開銷。這樣我們就把內(nèi)存分成新生代和老年代,下面和小編一起來了解一下吧。
         第一階段,串行收集器
  Serial收集器
  Serial收集器是一個(gè)單線程收集器,并且在JVM收集的過程中,必須暫停其它正在工作的線程,直到它收集結(jié)束。歷史悠久,在JDK 1.3.1之前是新生代收集的唯一選擇。目前僅是JVM運(yùn)行在client模式下的默認(rèn)新生代收集器。(因?yàn)閏lient端資源有限,而它在處理時(shí)停頓時(shí)間可以控制在幾十毫秒以內(nèi))
  Serial Old收集器
  Serial Old收集器是Serial收集器的老年代版本,也是一個(gè)單線程收集器,使用標(biāo)記整理算法實(shí)現(xiàn)。目前僅是JVM運(yùn)行在client模式下收集老年代使用。
  第二階段,并行收集器
  ParNew收集器
  ParNew收集器是Serial收集器的多線程版本。
  Parallel Scavenge收集器
  Parallel Scavenge收集器和ParNew收集器類似,也是新生代收集器,使用復(fù)制算法實(shí)現(xiàn)。
  Parallel Old收集器
  Parallel Old收集器也是老年代收集器,使用標(biāo)記整理算法實(shí)現(xiàn)。
  第三階段,CMS收集器(Concurrent Mark Sweep)
  CMS收集器是一種以獲取最短回收停頓時(shí)間為目的的收集器,使用標(biāo)記清理算法實(shí)現(xiàn),是一個(gè)針對老年代進(jìn)行回收的GC。
  CMS處理4個(gè)階段:
  初始標(biāo)記:這個(gè)階段需要暫停所有正在執(zhí)行的線程,官方叫法是STW(Stop The World)。標(biāo)記和GC Roots直接關(guān)聯(lián)的對象,執(zhí)行很快。
  并發(fā)標(biāo)記:這個(gè)階段進(jìn)行GC Root Tracing,多線程執(zhí)行,繼續(xù)標(biāo)記可達(dá)到的對象。
  并發(fā)預(yù)處理:這個(gè)階段標(biāo)記從新生代晉升的對象,新分配到老年代的對象以及并發(fā)階段被修改的對象。
  重新標(biāo)記:暫停所有用戶線程,重新掃描堆中的對象,進(jìn)行可達(dá)性分析,標(biāo)記活著的對象。
  并發(fā)清除:用戶線程被重新激活,同時(shí)清理那些無效的對象。
  重置:CMS清除內(nèi)部狀態(tài),為下次回收做準(zhǔn)備。
  第四階段,G1收集器(Garbage-First)
  G1收集器(或者垃圾優(yōu)先收集器)的設(shè)計(jì)初衷是為了盡量縮短處理超大堆(大于4GB)時(shí)產(chǎn)生的停頓。相對于CMS的優(yōu)勢而言是內(nèi)存碎片的產(chǎn)生率大大降低。在G1中,堆被劃分成許多個(gè)連續(xù)的區(qū)域(region)。每個(gè)區(qū)域大小為2的倍數(shù),大小相等,在1M~32M之間。當(dāng)一個(gè)對象空間大于一個(gè)區(qū)域的50%
  G1處理4個(gè)階段:
  初始標(biāo)記:這個(gè)階段是SWT的,并且會觸發(fā)一次普通的Mintor GC。
  并發(fā)標(biāo)記:這個(gè)階段在整個(gè)堆中進(jìn)行并發(fā)標(biāo)記,若發(fā)現(xiàn)區(qū)域?qū)ο笾械乃袑ο蠖伎杀换厥?,那這個(gè)區(qū)域會立即被回收。如果有不可被回收的對象,會計(jì)算該對象所在區(qū)域的對象活性(對象存活比率)。
  重新標(biāo)記:這個(gè)階段是SWT的,標(biāo)記上一階段產(chǎn)生的垃圾。
  并發(fā)清理:用戶線程被重新激活,同時(shí)清理那些無效的對象。
  G1優(yōu)點(diǎn):
  并發(fā):G1能充分利用CPU、多核環(huán)境下的硬件優(yōu)勢,使用多個(gè)CPU(CPU或者CPU核心)來縮短stop-The-World停頓時(shí)間。部分其他收集器原本需要停頓線程執(zhí)行的GC動作,G1收集器仍然可以通過并發(fā)的方式讓程序繼續(xù)執(zhí)行。
  分代收集:雖然G1可以不需要其他收集器配合就能獨(dú)立管理整個(gè)GC堆,但是還是保留了分代的概念。它能夠采用不同的方式去處理新創(chuàng)建的對象和已經(jīng)存活了一段時(shí)間,熬過多次GC的舊對象以獲取更好的收集效果。
  空間整合:與CMS的“標(biāo)記清理”算法不同,G1從整體來看是基于“標(biāo)記整理”算法實(shí)現(xiàn)的收集器;從局部上來看是基于“復(fù)制”算法實(shí)現(xiàn)的。
  可預(yù)測的停頓:這是G1相對于CMS的另一個(gè)大優(yōu)勢,降低停頓時(shí)間是G1和CMS共同的關(guān)注點(diǎn),但G1除了追求低停頓外,還能建立可預(yù)測的停頓時(shí)間模型,能讓使用者明確指定在一個(gè)長度為M毫秒的時(shí)間片段內(nèi)。
 

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費(fèi)咨詢獲取折扣

Loading