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

JVM ZGC垃圾收集器

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

ZGC垃圾收集器

ZGC(“Z”并非什么專業(yè)名詞的縮寫,這款收集器的名字就叫作Z Garbage Collector)是一款在JDK 11中新加入的具有實驗性質(zhì)[1]的低延遲垃圾收集器,是由Oracle公司研發(fā)的。

ZGC收集器是一款基于Region內(nèi)存布局的,(暫時)不設(shè)分代的,使用了讀屏障、染色指針和內(nèi)存多重映射等技術(shù)來實現(xiàn)可并發(fā)的標(biāo)記-整理算法的,以低延遲為首要目標(biāo)的一款垃圾收集器。

  • ZGC的Region具有動態(tài)性——動態(tài)創(chuàng)建和銷毀,以及動態(tài)的區(qū)域容量大小??梢跃哂写蟆⒅?、小三類容量:

    • 小型Region(Small Region):容量固定為2MB,用于放置小于256KB的小對象。

    • 中型Region(Medium Region):容量固定為32MB,用于放置大于等于256KB但小于4MB的對象。

    • 大型Region(Large Region):容量不固定,可以動態(tài)變化,但必須為2MB的整數(shù)倍,用于放置

    4MB或以上的大對象。每個大型Region中只會存放一個大對象,但它的實際容量完全有可能小于中型Region,最小容量可低至4MB。

  • 染色指針技術(shù)(Colored Pointer)

    染色指針是一種直接將少量額外的信息存儲在指針上的技術(shù)。

    64位的Linux則分別支持47位(128TB)的進程虛擬地址空間和46位(64TB)的物理地址空間,64位的Windows系統(tǒng)甚至只支持44位(16TB)的物理地址空間。

    ZGC的染色指針技術(shù)將46位指針寬度的高4位取出來存儲4個標(biāo)志信息,通過這些標(biāo)志位,虛擬機可以直接從指針中看到其引用對象的三色標(biāo)記狀態(tài)、是否進入了重分配集(即被移動過)、是否只能通過finalize()方法才能被訪問到,如圖3-20所示。當(dāng)然,由于這些標(biāo)志位進一步壓縮了原本就只有46位的地址空間,也直接導(dǎo)致ZGC能夠管理的內(nèi)存不可以超過4TB(2的42次冪)。

JVM ZGC垃圾收集器,jvm,開發(fā)語言,java

三大優(yōu)勢:

  • 染色指針可以使得一旦某個Region的存活對象被移走之后,這個Region立即就能夠被釋放和重用掉,而不必等待整個堆中所有指向該Region的引用都被修正后才能清理。

  • 染色指針可以作為一種可擴展的存儲結(jié)構(gòu)用來記錄更多與對象標(biāo)記、重定位過程相關(guān)的數(shù)據(jù),以便日后進一步提高性能。

  • 染色指針可以大幅減少在垃圾收集過程中內(nèi)存屏障的使用數(shù)量

  • 內(nèi)存多重映射:

    ZGC使用了多重映射(Multi-Mapping)將多個不同的虛擬內(nèi)存地址映射到同一個物理內(nèi)存地址上,這是一種多對一映射,意味著ZGC在虛擬內(nèi)存中看到的地址空間要比實際的堆內(nèi)存容量來得更大。把染色指針中的標(biāo)志位看作是地址的分段符,那只要將這些不同的地址段都映射到同一個物理內(nèi)存空間,經(jīng)過多重映射轉(zhuǎn)換后,就可以使用染色指針正常進行尋址了

    JVM ZGC垃圾收集器,jvm,開發(fā)語言,java

ZGC收集器是如何工作的:

JVM ZGC垃圾收集器,jvm,開發(fā)語言,java文章來源地址http://www.zghlxwxcb.cn/news/detail-683749.html

  • 并發(fā)標(biāo)記(Concurrent Mark):與G1、Shenandoah一樣,并發(fā)標(biāo)記是遍歷對象圖做可達性分析的階段,前后也要經(jīng)過類似于G1、Shenandoah的初始標(biāo)記、最終標(biāo)記(盡管ZGC中的名字不叫這些)的短暫停頓,ZGC的標(biāo)記是在指針上而不是在對象上進行的,標(biāo)記階段會更新染色指針中的Marked 0、Marked 1標(biāo)志位
  • 并發(fā)預(yù)備重分配(Concurrent Prepare for Relocate):這個階段需要根據(jù)特定的查詢條件統(tǒng)計得出本次收集過程要清理哪些Region,將這些Region組成重分配集(Relocation Set)。
  • ·并發(fā)重分配(Concurrent Relocate):重分配是ZGC執(zhí)行過程中的核心階段,這個過程要把重分配集中的存活對象復(fù)制到新的Region上,并為重分配集中的每個Region維護一個轉(zhuǎn)發(fā)表(ForwardTable),記錄從舊對象到新對象的轉(zhuǎn)向關(guān)系。
  • 并發(fā)重映射(Concurrent Remap):重映射所做的就是**修正整個堆中指向重分配集中舊對象的所有引用,但是ZGC中對象引用存在“自愈”功能,所以這個重映射操作并不是很迫切。ZGC很巧妙地把并發(fā)重映射階段要做的工作,合并到了下一次垃圾收集循環(huán)中的并發(fā)標(biāo)記階段里去完成,反正它們都是要遍歷所有對象的,這樣合并就節(jié)省了一次遍歷對象圖的開銷。**

到了這里,關(guān)于JVM ZGC垃圾收集器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • JVM的故事——垃圾收集器

    JVM的故事——垃圾收集器

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

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

    08-JVM垃圾收集器詳解

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

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

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

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

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

    深入理解JVM垃圾收集器

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

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

    JVM:垃圾收集器(7種)

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

    2024年01月20日
    瀏覽(22)
  • G1垃圾收集器-JVM(十三)

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

    上篇文章說了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)存的機

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

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

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

    2024年02月21日
    瀏覽(31)
  • JVM垃圾回收算法和CMS垃圾收集器

    JVM垃圾回收算法和CMS垃圾收集器

    目錄 判斷一個對象是否死亡? 1、引用計數(shù)法? 2、可達性分析算法 三色標(biāo)記 垃圾收集算法 1、分代收集理論? 2、垃圾回收算法 標(biāo)記-清除 標(biāo)記-復(fù)制 標(biāo)記-整理 CMS(Concurrent Mark Sweep)收集器 CMS垃圾收集器步驟 CMS垃圾收集器優(yōu)缺點 垃圾收集需要完成的三件事情: 哪些內(nèi)存需

    2024年02月10日
    瀏覽(27)
  • 三種方式查看 JVM 垃圾收集器

    三種方式查看 JVM 垃圾收集器

    ????????不同版本的 JVM 默認(rèn)使用的垃圾收集器是不同的,目前的新生代和老年代的垃圾收集器如下圖所示,新生代和老年代之間的連線表示這些垃圾收集器可以進行搭配使用 ????????垃圾收集器的名字和? JVM 里面的參數(shù)對照表如下,即在 JVM 里面并不是存儲的垃圾收

    2024年02月09日
    瀏覽(36)
  • 溫故而知新-JVM垃圾收集器

    標(biāo)記-清除 復(fù)制算法 標(biāo)記-整理 現(xiàn)在垃圾收集器均采用分代收集策略,新生代由于98%的對象都是朝生夕死,復(fù)制算法更合適,只復(fù)制還存活的對象,工作量小,所以效率高。顯然復(fù)制算法不適合老年代,因為老年代中的對象大部分是大對象,且長時間存活,復(fù)制算法效率太低

    2024年02月15日
    瀏覽(94)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包