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

【JVM】JVM垃圾收集器

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

什么是JVM垃圾收集器

垃圾收集器是負責執(zhí)行垃圾回收的組件,它們用于管理Java程序運行時的內(nèi)存分配和釋放。垃圾收集器的主要任務是自動回收不再使用的內(nèi)存對象,并將內(nèi)存空間重新回收以供程序繼續(xù)使用。

四種垃圾收集器(按類型分)

1.串行垃圾收集器(效率低)

Serial和Serial Old串行垃圾收集器,是指使用單線程進行垃圾回收,堆內(nèi)存較小,適合個人電腦

  • Serial 作用于新生代,采用復制算法
  • Serial Old 作用于老年代,采用標記-整理算法

垃圾回收時,只有一個線程在工作,并且java應用中的所有線程都要暫停(STW),等待垃圾回收的完成。

【JVM】JVM垃圾收集器,JVM,面試題合集,jvm

2.并行垃圾收集器(JDK8默認使用此垃圾回收器)

Parallel New和Parallel Old是一個并行垃圾回收器,JDK8默認使用此垃圾回收器

  • Parallel New作用于新生代,采用復制算法
  • Parallel Old作用于老年代,采用標記-整理算法

垃圾回收時,多個線程在工作,并且java應用中的所有線程都要暫停(STW),等待垃圾回收的完成。(通過并行執(zhí)行垃圾回收以提高性能)

相比較與串行垃圾收集器,并行垃圾收集器無非就是多開寫線程來做垃圾回收,其實同樣也要暫停所有正在執(zhí)行的線程,只不過在多個線程并行回收效率比串行高

【JVM】JVM垃圾收集器,JVM,面試題合集,jvm

3.CMS(并發(fā))垃圾收集器(只針對老年代垃圾回收的)

CMS全稱 Concurrent Mark Sweep,是一款并發(fā)的、使用標記-清除算法的垃圾回收器,該回收器是針對老年代垃圾回收的,是一款以獲取最短回收停頓時間為目標的收集器,停頓時間短,用戶體驗就好。

最大特點是在進行垃圾回收時,應用仍然能正常運行。
【JVM】JVM垃圾收集器,JVM,面試題合集,jvm

4.G1垃圾回收器(在JDK9之后默認使用G1)

G1垃圾收集器的設計目標是在可控的停頓時間內(nèi)實現(xiàn)高吞吐量的垃圾回收。

【JVM】JVM垃圾收集器,JVM,面試題合集,jvm
【JVM】JVM垃圾收集器,JVM,面試題合集,jvm

  • 應用于新生代老年代
  • 劃分成多個區(qū)域每個區(qū)域都可以充當 eden,survivor,old, humongous,其中 humongous 專為大對象準備
  • 采用標記整理算法

因為基本上G1主要針對大型堆內(nèi)存進行垃圾回收,而復制算法在大型堆內(nèi)存上的應用存在一些挑戰(zhàn)和限制。(必須考慮內(nèi)存空間使用率)

  • 響應時間與吞吐量兼顧

  • 分成三個階段:新生代回收、并發(fā)標記、混合收集(在不同的條件下被觸發(fā))
    【JVM】JVM垃圾收集器,JVM,面試題合集,jvm

  • 如果并發(fā)失敗(即回收速度趕不上創(chuàng)建新對象速度),會觸發(fā) Full GC(盡量避免)

如果對象內(nèi)存分配速度過快,mixed gc來不及回收,導致老年代被填滿,就會觸發(fā)一次full gc,G1的full gc算法就是單線程執(zhí)行的serial old gc,會導致異常長時間的暫停時間,需要進行不斷的調(diào)優(yōu),盡可能的避免full gc.

第一階段----->Young Collection(年輕代垃圾回收)

  • 初始時,所有區(qū)域都處于空閑狀態(tài)

【JVM】JVM垃圾收集器,JVM,面試題合集,jvm

  • 創(chuàng)建了一些對象,挑出一些空閑區(qū)域作為eden區(qū)存儲這些對象
    【JVM】JVM垃圾收集器,JVM,面試題合集,jvm
  • 當伊甸園需要垃圾回收時,挑出一個空閑區(qū)域作為幸存區(qū)(s),用復制算法復制存活對象,需要暫停用戶線程
    【JVM】JVM垃圾收集器,JVM,面試題合集,jvm
  • 隨著時間流逝,eden區(qū)的內(nèi)存又有不足 將eden區(qū)以及之前幸存區(qū)中的存活對象,采用復制算法,復制到新的幸存區(qū),其中較老對象晉升至老年代(o)

XX:MaxTenuringThreshold(默認15),計算出一個恰當?shù)娜纹陂撝担彩浅^任期閾值的對象都會被晉升到老年代。
或者幸存區(qū)里有大對象,也會直接晉升到老年代(畢竟大對象,復制來復制去影響整體效率)

【JVM】JVM垃圾收集器,JVM,面試題合集,jvm

Young Collection + Concurrent Mark (年輕代垃圾回收+并發(fā)標記)

老年代占用內(nèi)存超過閾值(默認是45%)后,觸發(fā)并發(fā)標記,這時無需暫停用戶線程
【JVM】JVM垃圾收集器,JVM,面試題合集,jvm
并發(fā)標記之后,會有重新標記階段解決漏標問題此時需要暫停用戶線程。
這些都完成后就知道了老年代有哪些存活對象,隨后進入混合收集階段。此時不會對所有老年代區(qū)域進行回收,而是根據(jù)停頓時間目標優(yōu)先回收價值高(存活對象少)的區(qū)域(這也是 Gabage First 名稱的由來)。

注意,這個階段只是做標記,根據(jù)重新標記停頓時間來判斷哪些老年代里面或的對象少,下一階段優(yōu)先對這些回收價值高的老年代來回收
【JVM】JVM垃圾收集器,JVM,面試題合集,jvm

第三階段----->Mixed Collection (混合垃圾回收,新老都參與)

混合收集階段中,參與復制的有 eden、survivor、old

【JVM】JVM垃圾收集器,JVM,面試題合集,jvm
復制完成,內(nèi)存得到釋放。進入下一輪的新生代回收、并發(fā)標記、混合收集

G1和CMS區(qū)別

【JVM】JVM垃圾收集器,JVM,面試題合集,jvm文章來源地址http://www.zghlxwxcb.cn/news/detail-644080.html

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

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

領支付寶紅包贊助服務器費用

相關文章

  • JVM--- 垃圾收集器詳細整理

    JVM--- 垃圾收集器詳細整理

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

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

    JVM ZGC垃圾收集器

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

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

    深入理解JVM垃圾收集器

    相關系列 深入理解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收集器是最基礎、歷史最悠久的收集器,是HotSpot虛擬機新生代收集器的唯一選擇。這個收集器

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

    上篇文章說了G1的特性,無分代,復制算法,大內(nèi)存就可以用G1,可預測stw時間等特性。 G1垃圾收集分類-JVM(十四) ZGC收集器 -XX:+UseZGC ZGC(Z Garbage Collector)是在jdk11新加入的低延遲垃圾收集器。 Zgc有四個目標 : 支持至少TB級別堆內(nèi)存回收。(目前4TB) STW保持在10ms之內(nèi)。 吞

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

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

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

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

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

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

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

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

    目錄 判斷一個對象是否死亡? 1、引用計數(shù)法? 2、可達性分析算法 三色標記 垃圾收集算法 1、分代收集理論? 2、垃圾回收算法 標記-清除 標記-復制 標記-整理 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垃圾收集器

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

    2024年02月15日
    瀏覽(94)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包