<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JVM GC回收器

          共 2312字,需瀏覽 5分鐘

           ·

          2020-08-21 12:40

          閱讀文本大概需要3分鐘。

          0x01: 串行回收器

          • 概念

          ????單線程進(jìn)行垃圾回收的回收器(單線程、獨(dú)占性)

          • 分類

          ????新生代串行回收器

          ????老年代串行回收器

          ????標(biāo)記壓縮算法

          • 命令

          ????-XX:+UseSerialGC :新生代老年代都使用串行回收器

          ????-XX:+UseParNewGC :新生代使用ParNew回收器,老年代使用串行回收器

          ????-XX:+UseParallelGC :新生代使用ParallelGC回收器,老年代使用串行回收器


          0x02:?并行回收器

          • 概念

          ????多線程進(jìn)行垃圾回收的回收器

          • 分類

          ????(1)新生代 ParNew 回收器

          ????只是簡(jiǎn)單的將串行回收器多線程化

          ????-XX:+UseParNewGC :新生代使用 ParNew 并行回收器,老年代串行回收器

          ????-XX:+UseConcMarkSweepGC :新生代使用ParNew 并行回收器,老年代使用 CMS

          ????-XX:ParallelGCThreads :設(shè)置多線程數(shù)量,最好與 CPU 個(gè)數(shù)保持一致(CPU < 8 ),或者 3 + ((5*cpu_count)/8)

          ????(2)新生代ParallelGC 回收器

          ????和 ParNew 回收器差不多,不過(guò)更關(guān)注吞吐量

          ????-XX:+UseParallelGC ?:新生代使用 ParallelGC 回收器,老年代使用串行回收器

          ? ?-XX:+UseParallelOldGC:新生代使用 ParallelGC 回收器,老年代使用 ParallelOldGC 回收器

          ????-XX:MaxGcPauseMillis :設(shè)置最大的垃圾收集停頓時(shí)間(大于 0 的整數(shù))

          ????-XX:GCTimeRatio :設(shè)置吞吐量(0~100 整數(shù),假如 GCTimeRatio的值為n,系統(tǒng)將花費(fèi)不超過(guò)1/(1+n)的時(shí)間用于垃圾回收,默認(rèn)值是 19)

          ????-XX:+UseAdaptiveSizePolicy :打開自適應(yīng) GC 策略

          ????(3)老年代 ParallelOldGC 回收器

          ????使用標(biāo)記壓縮算法,用于老年代


          0x03: CMS 回收器

          • 概念

          ????Concurrent Mark Sweep 并發(fā)標(biāo)記清除(多線程并且用的標(biāo)記清除算法),會(huì)造成大量的內(nèi)存碎片,離散的可用空間無(wú)法分配較大的對(duì)象

          • 流程

          • 參數(shù)

          ????-XX:-CMSPrecleaningEnabled?:?不進(jìn)行預(yù)清理

          ? ?-XX:+UseConcMarkSweepGC?:?啟動(dòng) CMS 回收器,默認(rèn)線程數(shù)(ParallelGCThreads + 3) /4

          ????-XX:ConcGCThreads -XX:ParallelCMSThreads?:?設(shè)置并發(fā)線程數(shù)(并發(fā)是收集器和應(yīng)用程序交替執(zhí)行,并行是應(yīng)用程序停止,多個(gè)線程一起執(zhí)行 GC,并行回收器不是并發(fā)的是并行的)

          ????-XX:CMSInitiatingOccupancyFraction?:?回收閾值,默認(rèn) 68(老年代空間利用率達(dá)到 68%時(shí),執(zhí)行一次 CMS 回收,如果 CMS 回收失敗,則虛擬機(jī)將啟動(dòng)老年代串行回收器,導(dǎo)致應(yīng)用程序中斷)

          ????如果內(nèi)存增長(zhǎng)緩慢,則增大此值,減少老年代回收次數(shù);如果內(nèi)存增長(zhǎng)過(guò)快,則降低此值,避免觸發(fā)老年代串行回收器

          ????-XX:+UseCMSCompactAtFullCollection?:?CMS 垃圾回收后進(jìn)行一次碎片整理(單線程)

          ????-XX:+CMSFullGCsBeforeCompaction?:?進(jìn)行多少次 CMS 后,進(jìn)行一次內(nèi)存壓縮

          ????-XX:+CMSClassUnloadingEnabled :?讓 CMS 可以回收 Perm 區(qū)


          0x04:?G1 回收器

          • 概念

          ????Garbage-First 回收器,jdk1.7引入,采用分代+分區(qū)算法,用于替代CMS

          • 特點(diǎn)

          ????并行性

          ????多個(gè) GC 線程同時(shí)工作

          ????并發(fā)性

          ????與應(yīng)用程序交替執(zhí)行,不會(huì)阻塞應(yīng)用程序

          ????分代 GC

          ????同時(shí)工作在年輕代和老年代

          ????空間整理

          ????區(qū)別于 CMS 的簡(jiǎn)單標(biāo)記清除,若干次后才碎片整理,G1 每次回收都復(fù)制對(duì)象,減少空間碎片

          ????可預(yù)見(jiàn)性

          ????G1 采用分區(qū),縮小回收范圍,更好控制停頓時(shí)間

          • 流程


          • G1 新生代 GC

          ????新生代 GC 只回收 E 區(qū)和 S 區(qū),一旦 E 區(qū)占滿,就會(huì)立刻 GC,回收后所有的 E 區(qū)被清空,S 區(qū)只留一個(gè),O 區(qū)增多(E,S 區(qū)對(duì)象晉升到老年代)

          • G1并發(fā)標(biāo)記

          • G1 參數(shù)

          ????-XX:MaxGCPauseMillis :?設(shè)置目標(biāo)最大停頓時(shí)間

          ????-XX:ParallelGCThreads :?并行回收時(shí),GC 工作數(shù)量

          ????XX:InitiatingHeapOccupancyPercent :?堆使用率達(dá)到多少,觸發(fā)并發(fā)標(biāo)記周期執(zhí)行(默認(rèn) 45)

          source:http://mousycoder.com/




          往期精彩



          01?Sentinel如何進(jìn)行流量監(jiān)控

          02?Nacos源碼編譯

          03?基于Apache Curator框架的ZooKeeper使用詳解

          04?spring boot項(xiàng)目整合xxl-job

          05?互聯(lián)網(wǎng)支付系統(tǒng)整體架構(gòu)詳解

          關(guān)注我

          每天進(jìn)步一點(diǎn)點(diǎn)

          喜歡!在看?


          瀏覽 179
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产成人精品亚洲777人妖 | 精品做爱视频在线观看 | 日韩av在线看 | 国产精品久久久久久久久久浪潮 | 国产乱婬A∨片免费视频牛牛 |