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

ZGC垃圾收集器-JVM(十五)

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

上篇文章說了G1的特性,無分代,復(fù)制算法,大內(nèi)存就可以用G1,可預(yù)測stw時間等特性。

G1垃圾收集分類-JVM(十四)
  • ZGC收集器

-XX:+UseZGC

ZGC(Z Garbage Collector)是在jdk11新加入的低延遲垃圾收集器。

Zgc有四個目標

  1. 支持至少TB級別堆內(nèi)存回收。(目前4TB)
  2. STW保持在10ms之內(nèi)。
  3. 吞吐量稍微降低,不會降低超過百分之15
  4. 奠定未來GC收集器的基礎(chǔ)。

Oracle官方介紹,不會因為內(nèi)存的增大而增大,意味著幾十G的堆,gc停頓時間不會超過10ms。

Zgc暫時沒有分代,因為內(nèi)部算法太復(fù)雜,實現(xiàn)分代太麻煩,暫時用單代版本,后續(xù)會優(yōu)化,可能就支持更高的TB內(nèi)存服務(wù)器。

NUMA-aware

UMA(Uniform Memory Access Architecture)表示內(nèi)存只有一塊,所有CPU都在這塊內(nèi)存運行,那么就存在競爭關(guān)系,爭奪內(nèi)存的訪問權(quán),有競爭就有鎖,必然影響效率,CPU內(nèi)核越多則競爭越激烈。所以與之而來,有了NUMA(Non Uniform Memory Access Architecture)直接每個CPU對應(yīng)獨有的內(nèi)存塊,且在主板上,這個CPU離對應(yīng)的內(nèi)存塊是最近的,自然性能很高。

  • ZGC運作過程

運作過程大致分為四個階段,并發(fā)標記,并發(fā)預(yù)配重分配,并發(fā)重分配,并發(fā)重映射

  1. 并發(fā)標記(Concurrent Mark):與G1一樣,可達性算法從GC roots遍歷,初始標記(mark start)和最終標記(mark end)也會出現(xiàn)短暫停頓,與G1不同的是遍歷的不是對象,而是指針,標記階段會更新指針顏色

(cms和g1有三色標記,在對象頭里,但是zgc的并發(fā)標記跟對象沒關(guān)系,而是放在內(nèi)存存儲空間的指針上)

2、并發(fā)預(yù)備重分配(Concurrent Prepare for Relocate):這個階段需要根據(jù)特定條件統(tǒng)計本次收集過程需要清理哪些region,將這些region組成重分配集(Relocation Set)。ZGC每次回收都會掃描所有的region,用范圍更大的掃描成本換省去G1記憶集的成本。

3、并發(fā)重分配(Councurrent Relocate):重分配是ZGC核心階段,這個過程要把重分配存活對象復(fù)制到新的region,并為重分配集的每個region維護一個轉(zhuǎn)發(fā)表(Forward table),記錄舊對象到新對象轉(zhuǎn)換關(guān)系。Zgc收集器僅從引用就能知道對象是否處于重分配中,如果用戶線程此時訪問了重分配對象,這次訪問會被預(yù)置的內(nèi)存屏障(讀屏障)所截獲,然后根據(jù)region上轉(zhuǎn)發(fā)表到新復(fù)制對象上,并同時修正該引用值,使其直接指向新對象,zgc這種行為稱為指針的“自愈”能力。

4、并發(fā)重映射(Coucurrent Remp):重映射所做的就是修正整個堆中指向重分配集舊對象所有引用,但是ZGC自愈功能,所以這個重映射不是很迫切。ZGC巧妙的把重映射要做的工作,合并到下一次垃圾收集器循環(huán)并發(fā)標記階段去完成,反正他要遍歷所有對象,這樣就可以節(jié)省開銷。一旦所有指針被修正,原來記錄新舊關(guān)系的轉(zhuǎn)發(fā)表也可以釋放。

  • 顏色指針

Coloored Pointers,顏色指針。

64位處理器,只需要42位來尋址,2^42則是4TB。后面版本jdk改為44位尋址,2^44則就是16TB。

另外四位做標記,比如marked1、marked0、finalizable標識和remapped標識。

Finalizable:就是三色標記,但不限于三種顏色,此位并發(fā)處理,表示對象通過此訪問。

Remapped:對象未指向relocation set中,relocation set表示需要gc的region集合。

剩余18位還未使用,預(yù)留給以后使用。文章來源地址http://www.zghlxwxcb.cn/news/detail-602946.html

到了這里,關(guān)于ZGC垃圾收集器-JVM(十五)的文章就介紹完了。如果您還想了解更多內(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--- 垃圾收集器詳細整理

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

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

    08-JVM垃圾收集器詳解

    上一篇:07-垃圾收集算法詳解 如果說收集算法是內(nèi)存回收的方法論,那么垃圾收集器就是內(nèi)存回收的具體實現(xiàn)。 雖然我們對各個收集器進行比較,但并非為了挑選出一個最好的收集器。因為直到現(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的,從上圖可以看到有連線的的垃圾收集器是可以組合使用,是年輕代+老年代。為什么會出現(xiàn)這么多的垃圾收集

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

    JVM:垃圾收集器(7種)

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

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

    JVM的故事——垃圾收集器

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

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

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

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

    2024年02月21日
    瀏覽(31)
  • G1垃圾收集器-JVM(十三)

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

    上篇文章說了CMS垃圾收集器使用以及三色標記如何解決cms的一些問題。分別有初始標記,并發(fā)標記,重新標記,并發(fā)清理,并發(fā)重置。 CMS垃圾收集器三色標記-JVM(十二) G1收集器(Garbage-First) -XX:+UseG1GC 這是一款面向服務(wù)器的垃圾收集器,主要針對 設(shè)備多核cpu和大內(nèi)存的機

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

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

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

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

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

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

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

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

    2024年02月15日
    瀏覽(94)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包