国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

G1垃圾收集器-JVM(十三)

這篇具有很好參考價(jià)值的文章主要介紹了G1垃圾收集器-JVM(十三)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

上篇文章說了CMS垃圾收集器使用以及三色標(biāo)記如何解決cms的一些問題。分別有初始標(biāo)記,并發(fā)標(biāo)記,重新標(biāo)記,并發(fā)清理,并發(fā)重置。

CMS垃圾收集器&三色標(biāo)記-JVM(十二)
  • G1收集器(Garbage-First)

-XX:+UseG1GC

這是一款面向服務(wù)器的垃圾收集器,主要針對設(shè)備多核cpu和大內(nèi)存的機(jī)器。以極高效率滿足GC停頓時(shí)間要求,還具備高吞吐性能特征。

Region

G1讓我們忘記以前的年輕代老年代,但只是物理和以前不同,但是他會(huì)分為多個(gè)大小相等的小塊(Region),jvm最多可以有2048個(gè)region。

每個(gè)小塊分別代表E(eden)、S(survivor)、O(old)、H(humongous)。

一般默認(rèn)就是劃分2048個(gè)region,比如堆內(nèi)存是4096M,則Region是堆的大小除以2048,每個(gè)region的大小是2M。推薦默認(rèn)方式。

(也可以用-XX:G1HeapRegionSize= 來修改他的大小)

所以老年代和年輕代已經(jīng)在物理上不是連續(xù)的,而是分為不同的region集合。

默認(rèn)年輕代占比百分5,如果堆大小是4096,每個(gè)region是2M,那么對應(yīng)大概100個(gè)Region。

可以通過-XX:G1NewSizePercent設(shè)置新生代初始占比。

在系統(tǒng)運(yùn)行的時(shí)候也會(huì)慢慢給年輕代增加占比,但最大不會(huì)超過百分之60。

最大值也可以設(shè)置-XX:G1MaxNewSizePercent調(diào)整

比例還如之前的比例8:1:1,比如現(xiàn)在100個(gè)region,eden則是80個(gè),s0和s1分別是10。

動(dòng)態(tài)變化:一個(gè)region之前是老年代,但是做完GC之后可能變成年輕代,說明region區(qū)域功能可能動(dòng)態(tài)變化。

G1垃圾收集和前面都是一樣的,唯一不同的就是對大對象的處理,G1有專門分配大對象region的區(qū)域叫humongous區(qū),而不是讓大對象進(jìn)入老年代中,節(jié)約老年代空間,正常大于region百分之50的對象就屬于大對象,直接進(jìn)入humongous,當(dāng)對象太大的時(shí)候,會(huì)跨多個(gè)humongous存儲(chǔ)。fullGC的時(shí)候會(huì)將humongous一起回收。

(前面說了一個(gè)region是2M,也就是大于1M的時(shí)候直接進(jìn)入humongous)

  • G1收集器步奏
  • G1垃圾收集器-JVM(十三),后端,jvm
  1. 初始標(biāo)記:STW暫停其他線程,記錄GC roots直接引用的對象,速度很快。
  2. 并發(fā)標(biāo)記(Concurrent Marking):用戶線程和GC線程一起運(yùn)行標(biāo)記,與CMS的并發(fā)標(biāo)記類似。
  3. 最終標(biāo)記:STW暫停其他線程,整理一些剛剛標(biāo)記的對象,與CMS重復(fù)標(biāo)記類似。
  4. 篩選回收(Clearup,STW):
  5. 篩選標(biāo)記:篩選是對各個(gè)region的回收價(jià)值和成本進(jìn)行排序,根據(jù)用戶所期望的GC停頓進(jìn)行STW時(shí)間來制定回收計(jì)劃(-XX:MaxGCPauseMillis),如果1000個(gè)region滿了,這時(shí)候默認(rèn)是200ms,只能回收800個(gè)region,這800個(gè)region就是Collection set,盡量把gc回收控制在我們指定時(shí)間內(nèi)。這個(gè)階段也可以與用戶線程并行,但因?yàn)橹换厥找徊糠?,并且時(shí)間可控,所以STW效率可以更高。他是采用復(fù)制算法來垃圾回收,所以幾乎不會(huì)產(chǎn)生碎片。內(nèi)部使用復(fù)制算法,但是從整體來看,像是標(biāo)記整理算法。

(注意:CMS回收階段是用戶線程一起并發(fā),G1內(nèi)部太復(fù)雜,并沒有并發(fā)回收,不過到了ZGC,Shenandoah就實(shí)現(xiàn)并發(fā)收集,Shenandoah可以看做并發(fā)升級(jí)版本)文章來源地址http://www.zghlxwxcb.cn/news/detail-575900.html

到了這里,關(guān)于G1垃圾收集器-JVM(十三)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JVM(Java Virtual Machine)G1收集器篇

    JVM(Java Virtual Machine)G1收集器篇

    本文參考《深入理解Java虛擬機(jī)》,本文主要介紹G1收集器的收集思想和具體過程(填上一篇文章留下的坑) 本系列其他文章鏈接: JVM(Java Virtual Machine)內(nèi)存模型篇 JVM(Java Virtual Machine)垃圾收集算法篇 JVM(Java Virtual Machine)垃圾收集器篇 G1是一款主要面向服務(wù)端應(yīng)用的垃圾

    2024年02月07日
    瀏覽(29)
  • 從原理聊JVM(二):從串行收集器到分區(qū)收集開創(chuàng)者G1

    作者:京東科技?康志興 隨著Java的進(jìn)化過程,涌現(xiàn)出各種不同的垃圾回收器,從串行執(zhí)行到并行執(zhí)行,從高吞吐到低延遲,終極目標(biāo)就是讓開發(fā)人員專注于程序的代碼書寫而無需關(guān)注內(nèi)存管理。 JDK早期出現(xiàn)的垃圾回收器通常單獨(dú)作用于不同分代,到后期出現(xiàn)的G1開始,才可以

    2023年04月24日
    瀏覽(23)
  • JVM 垃圾收集器

    JVM 垃圾收集器

    重點(diǎn):CMS,G1,ZGC 主要垃圾收集器如下,圖中標(biāo)出了它們的工作區(qū)域、垃圾收集算法,以及配合關(guān)系。 Serial 收集器 Serial 收集器是最基礎(chǔ)、歷史最悠久的收集器。 如同它的名字(串行),它是一個(gè)單線程工作的收集器,使用一個(gè)處理器或一條收集線程去完成垃圾收集工作。

    2024年02月10日
    瀏覽(55)
  • JVM--- 垃圾收集器詳細(xì)整理

    JVM--- 垃圾收集器詳細(xì)整理

    目錄 一、垃圾收集需要考慮的三個(gè)事情: 二、垃圾回收針對的區(qū)域 三、如何判斷對象已死 ? ? ? ? 1.引用計(jì)數(shù)算法: ? ? ? ? 2.可達(dá)性分析算法 四、引用 五、生存還是死亡? 六、回收方法區(qū) 七、垃圾收集算法 ? ? ? ? 1.分代收集理論 2.標(biāo)記-清除算法 ????????3.標(biāo)記

    2024年02月19日
    瀏覽(30)
  • JVM ZGC垃圾收集器

    JVM ZGC垃圾收集器

    ZGC(“Z”并非什么專業(yè)名詞的縮寫,這款收集器的名字就叫作Z Garbage Collector)是一款在JDK 11中新加入的具有實(shí)驗(yàn)性質(zhì)[1]的低延遲垃圾收集器,是由Oracle公司研發(fā)的。 ZGC收集器 是一款基于Region內(nèi)存布局的,(暫時(shí))不設(shè)分代的,使用了讀屏障、染色指針和內(nèi)存多重映射等技術(shù)

    2024年02月10日
    瀏覽(24)
  • 08-JVM垃圾收集器詳解

    08-JVM垃圾收集器詳解

    上一篇:07-垃圾收集算法詳解 如果說收集算法是內(nèi)存回收的方法論,那么垃圾收集器就是內(nèi)存回收的具體實(shí)現(xiàn)。 雖然我們對各個(gè)收集器進(jìn)行比較,但并非為了挑選出一個(gè)最好的收集器。因?yàn)橹钡浆F(xiàn)在為止還沒有最好的垃圾收集器出現(xiàn),更加沒有萬能的垃圾收集器,我們能做

    2024年02月09日
    瀏覽(30)
  • 深入理解JVM垃圾收集器

    深入理解JVM垃圾收集器

    相關(guān)系列 深入理解JVM垃圾收集算法-CSDN博客 目前市面常見的垃圾收集器有Serial、ParNew、Parallel、CMS、Serial Old、Parallel Old、G1、ZGC以及有二種不常見的Epsilon、Shenandoah的,從上圖可以看到有連線的的垃圾收集器是可以組合使用,是年輕代+老年代。為什么會(huì)出現(xiàn)這么多的垃圾收集

    2024年04月09日
    瀏覽(24)
  • JVM:垃圾收集器(7種)

    JVM:垃圾收集器(7種)

    如果兩個(gè)收集器之間存在連線,就說明它們可以搭配使用。它們說在的區(qū)域則表示這個(gè)收集器屬于新生代收集器還是老年代收集器。其中Serial(串行)、Parallel(并行) ? ? ? ? Serial收集器是最基礎(chǔ)、歷史最悠久的收集器,是HotSpot虛擬機(jī)新生代收集器的唯一選擇。這個(gè)收集器

    2024年01月20日
    瀏覽(22)
  • JVM的故事——垃圾收集器

    JVM的故事——垃圾收集器

    新生代收集器,最基礎(chǔ)的收集器,單線程。進(jìn)行垃圾收集時(shí)必須暫停其他所有工作線程,stop the world 新生代收集器,實(shí)質(zhì)上是serial收集器的多線程版本。除了serial,只有它能和CMS收集器(老年代收集器)配合工作。隨著處理器核心數(shù)越來越多,parnew比serial有著更好的性能。(但如

    2024年02月10日
    瀏覽(29)
  • JVM-垃圾回收(標(biāo)記算法,收集器)

    JVM-垃圾回收(標(biāo)記算法,收集器)

    申明:文章內(nèi)容是本人學(xué)習(xí)極客時(shí)間課程所寫,文字和圖片基本來源于課程資料,在某些地方會(huì)插入一點(diǎn)自己的理解,未用于商業(yè)用途,侵刪。 原資料地址:課程資料 垃圾回收的基本原理 1 什么是垃圾? 在內(nèi)存中,沒有被引用的對象就是垃圾。 2 如果找到垃圾對象? 引用計(jì)

    2024年02月21日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包