JVM-垃圾回收GC(1)

GC(Garbage Collector)概念

image.png
  • MinorGC/YGC:年輕代空間耗盡
  • MajorGC/FGC:在老年代無法繼續(xù)分配空間時觸發(fā),新生代、老年代同時進(jìn)行回收。

堆內(nèi)存邏輯分區(qū)(適用分代垃圾收集器)

image.png
  • 查看新生代和老年代比例:
    命令:java -XX:+PrintFlagsFinal -version | grep NewRatio
    uintx NewRatio = 2
    新生代:老年代比例為1:2

  • 新生代包含Eden區(qū)和兩個Survivor區(qū)

  • 永久代(1.7)Perm Generation
    必須指定大小限制
    字符串常量1.7存放在永久代

  • 元數(shù)據(jù)區(qū)(1.8)Metaspace
    可以不設(shè)置大小
    字符串常量1.8存放在堆

對象的生命周期

image.png

image.png
  1. 一個對象生成,首先嘗試在棧上分配
  2. 分配不下,進(jìn)入Eden區(qū)
  3. 經(jīng)過一次垃圾回收后,進(jìn)入S1
  4. 下次垃圾回收進(jìn)入S2
  5. 在S1/S2中反復(fù),直到年齡夠了進(jìn)入Old區(qū)

對象何時進(jìn)入老年代

  • 超過XX:MaxTenuringThreshold指定次數(shù)(YGC)
    1.Parallel Scavenge 15
    2.CMS 6
    3.G1 15
    不重要
  • 動態(tài)年齡

年齡從小到大進(jìn)行累加,當(dāng)加入某個年齡段后,累加和超過survivor區(qū)域*TargetSurvivorRatio的時候,就從這個年齡段網(wǎng)上的年齡的對象進(jìn)行晉升。
年齡1的占用了33%,年齡2的占用了33%,累加和超過默認(rèn)的TargetSurvivorRatio(50%),年齡2和年齡3的對象都要晉升
作者:xpbob
鏈接:http://www.itdecent.cn/p/989d3b06a49d

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 垃圾回收器 什么是垃圾對象? 沒有任何引用的對象。 如何發(fā)現(xiàn)垃圾對象? reference count 引用計(jì)數(shù)每...
    三不猴子閱讀 603評論 0 4
  • 轉(zhuǎn)載請注明出處:http://www.itdecent.cn/p/9e6841a895b4[https://ww...
    Minority閱讀 11,670評論 11 48
  • 垃圾回收.GC 1.垃圾判斷算法 1.1 引用計(jì)數(shù)算法 給對象添加一個引用計(jì)數(shù)器,當(dāng)有一個地方引用它,計(jì)數(shù)器加1,...
    飛行員阿越閱讀 311評論 0 1
  • 1. JVM 內(nèi)存結(jié)構(gòu) 1.1 程序計(jì)數(shù)器 JVM 支持多線程同時執(zhí)行,每個線程都有自己的程序計(jì)數(shù)器,線程正在執(zhí)行...
    王龍江_3c83閱讀 577評論 0 0
  • JVM 垃圾回收 寫在前面 本節(jié)常見面試題 問題答案在文中都有提到 如何判斷對象是否死亡(兩種方法)。 簡單的介紹...
    前端三少爺閱讀 118評論 0 0

友情鏈接更多精彩內(nèi)容