日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

垃圾收集器与内存分配策略(五)之垃圾日志与常见参数

發(fā)布時(shí)間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 垃圾收集器与内存分配策略(五)之垃圾日志与常见参数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

垃圾收集器與內(nèi)存分配策略(五)——垃圾日志與常見參數(shù)

理解GC日志

每個(gè)收集器的日志格式都可以不一樣,但各個(gè)每個(gè)收集器的日志都維持一定的共性。如下面二段日志:

33.125: [GC [DefNew: 3324K->152K(3712K), 0.0025925 secs] 3324K->152K(11904K), 0.0031680 secs] 100.667: [Full GC [Tenured: 0K->210K(10240K), 0.0149142 secs] 4603K->210K(19456K), [Perm : 2999K->2999K(21248K)], 0.0150007 secs] [Times: user=0.01 sys=0.00, real=0.02 secs]
  • 最前面的數(shù)字“33.125:”和“100.667:”代表了GC發(fā)生的時(shí)間,這個(gè)數(shù)字的含義是從Java虛擬機(jī)啟動(dòng)以來經(jīng)過的秒數(shù)。
  • GC和Full GC說明此次垃圾垃圾收集停頓的類型。如果有“Full”說明這次GC是發(fā)生了Stop-The-World的。如果是調(diào)用System.gc()方法觸發(fā)的收集,那么這里將顯示“[ Full GC(System) ]”
  • 接下來的“[DefNew”、“[Tenured”、“[Perm”表示GC發(fā)生的區(qū)域,這里顯示的區(qū)域名稱與使用的GC收集器是密切相關(guān)的。
    (1).上面樣例所使用的Serial收集器中的新生代名為“Default New Generation”,所以顯示的是“[DefNew ]”。
    (2).如果是ParNew收集器,新生代名稱就會(huì)變?yōu)椤?#xff3b;ParNew”,意為“Parallel New Generation”。
    (3).如果采用Parallel Scavenge收集器,那它配套的新生代稱為“PSYoungGen”,老年代和永久代同理,名稱也是由收集器決定的。
  • .后面方括號(hào)內(nèi)部的“3324K->152K(3712K)”含義是“GC前該內(nèi)存區(qū)域已使用容量-> GC后該內(nèi)存區(qū)域已使用容量 (該內(nèi)存區(qū)域總?cè)萘?”。
  • 而在方括號(hào)之外的“3324K->152K(11904K)”表示“GC前Java堆已使用容量 -> GC后Java堆已使用容量 (Java堆總?cè)萘?”。
  • 再往后,“0.0025925 secs”表示該內(nèi)存區(qū)域GC所占用的時(shí)間,單位是秒。
  • 下面這段新生代收集器ParNew的日志也會(huì)出現(xiàn)“[Full GC”(這一般是因?yàn)槌霈F(xiàn)了分配擔(dān)保失敗之類的問題,所以才導(dǎo)致STW)。

    [Full GC 283.736: [ParNew: 261599K->261599K(261952K), 0.0000288 secs]

    垃圾收集參數(shù)總結(jié)

    -XX:+< option > 啟用選項(xiàng)
    -XX:-< option > 不啟用選項(xiàng)
    -XX:< option > = < number >
    -XX:< option > = < string >

    參數(shù)描述
    -XX:+UseSerialGCJvm運(yùn)行在Client模式下的默認(rèn)值,打開此開關(guān)后,使用Serial + Serial Old的收集器組合進(jìn)行內(nèi)存回收
    -XX:+UseParNewGC打開此開關(guān)后,使用ParNew + Serial Old的收集器進(jìn)行垃圾回收
    -XX:+UseConcMarkSweepGC使用ParNew + CMS + Serial Old的收集器組合進(jìn)行內(nèi)存回收,Serial Old作為CMS出現(xiàn)“Concurrent Mode Failure”失敗后的后備收集器使用。
    -XX:+UseParallelGCJvm運(yùn)行在Server模式下的默認(rèn)值,打開此開關(guān)后,使用Parallel Scavenge + Serial Old的收集器組合進(jìn)行回收
    -XX:+UseParallelOldGC使用Parallel Scavenge + Parallel Old的收集器組合進(jìn)行回收
    -XX:SurvivorRatio新生代中Eden區(qū)域與Survivor區(qū)域的容量比值,默認(rèn)為8,代表Eden:Subrvivor = 8:1
    -XX:PretenureSizeThreshold直接晉升到老年代對(duì)象的大小,設(shè)置這個(gè)參數(shù)后,大于這個(gè)參數(shù)的對(duì)象將直接在老年代分配
    -XX:MaxTenuringThreshold晉升到老年代的對(duì)象年齡,每次Minor GC之后,年齡就加1,當(dāng)超過這個(gè)參數(shù)的值時(shí)進(jìn)入老年代
    -XX:UseAdaptiveSizePolicy動(dòng)態(tài)調(diào)整java堆中各個(gè)區(qū)域的大小以及進(jìn)入老年代的年齡
    -XX:+HandlePromotionFailure是否允許新生代收集擔(dān)保,進(jìn)行一次minor gc后, 另一塊Survivor空間不足時(shí),將直接會(huì)在老年代中保留
    -XX:ParallelGCThreads設(shè)置并行GC進(jìn)行內(nèi)存回收的線程數(shù)
    -XX:GCTimeRatioGC時(shí)間占總時(shí)間的比列,默認(rèn)值為99,即允許1%的GC時(shí)間,僅在使用Parallel Scavenge 收集器時(shí)有效
    -XX:MaxGCPauseMillis設(shè)置GC的最大停頓時(shí)間,在Parallel Scavenge 收集器下有效
    -XX:CMSInitiatingOccupancyFraction設(shè)置CMS收集器在老年代空間被使用多少后出發(fā)垃圾收集,默認(rèn)值為68%,僅在CMS收集器時(shí)有效,-XX:CMSInitiatingOccupancyFraction=70
    -XX:+UseCMSCompactAtFullCollection由于CMS收集器會(huì)產(chǎn)生碎片,此參數(shù)設(shè)置在垃圾收集器后是否需要一次內(nèi)存碎片整理過程,僅在CMS收集器時(shí)有效
    -XX:+CMSFullGCBeforeCompaction設(shè)置CMS收集器在進(jìn)行若干次垃圾收集后再進(jìn)行一次內(nèi)存碎片整理過程,通常與UseCMSCompactAtFullCollection參數(shù)一起使用
    -XX:+UseFastAccessorMethods原始類型優(yōu)化
    -XX:+DisableExplicitGC是否關(guān)閉手動(dòng)System.gc
    -XX:+CMSParallelRemarkEnabled降低標(biāo)記停頓
    -XX:LargePageSizeInBytes內(nèi)存頁的大小不可設(shè)置過大,會(huì)影響Perm的大小,-XX:LargePageSizeInBytes=128m

    Client、Server模式默認(rèn)GC

    ?新生代GC方式老年代和持久帶GC方式
    ClientSerial串行GCSerial Old串行GC
    ServerParallel Scavenge 并行回收GCParallel Old 并行GC

    Sun/Oracle JDK GC組合方式

    ?


    ?

    轉(zhuǎn)載于:https://my.oschina.net/PrivateO2/blog/1575788

    總結(jié)

    以上是生活随笔為你收集整理的垃圾收集器与内存分配策略(五)之垃圾日志与常见参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。