jvm 基礎(chǔ)篇-(5)-jvm-對象年齡(-XX:+PrintTenuringDistribution)

-XX:+PrintTenuringDistribution 贈送銀彈: -XX:SurvivorRatio

????作用:輸出顯示在survivor空間里面有效的對象的歲數(shù)情況。

{Heap before GC invocations=0 (full 0):
 par new generation   total 1887488K, used 1677824K [0x00000006e0c00000, 0x0000000760c00000, 0x0000000760c00000)
  eden space 1677824K, 100% used [0x00000006e0c00000, 0x0000000747280000, 0x0000000747280000)
  from space 209664K,   0% used [0x0000000747280000, 0x0000000747280000, 0x0000000753f40000)
  to   space 209664K,   0% used [0x0000000753f40000, 0x0000000753f40000, 0x0000000760c00000)
 concurrent mark-sweep generation total 2097152K, used 0K [0x0000000760c00000, 0x00000007e0c00000, 0x00000007e0c00000)
 concurrent-mark-sweep perm gen total 512000K, used 22205K [0x00000007e0c00000, 0x0000000800000000, 0x0000000800000000)
2018-02-06T13:29:54.526+0800: 6.958: [GC2018-02-06T13:29:54.526+0800: 6.958: [ParNew2018-02-06T13:29:54.584+0800: 7.016: [SoftReference, 0 refs, 0.0000450 secs]2018-02-06T13:29:54.584+0800: 7.016: [WeakReference, 1074 refs, 0.0001630 secs]2018-02-06T13:29:54.584+0800: 7.017: [FinalReference, 67745 refs, 0.1348760 secs]2018-02-06T13:29:54.719+0800: 7.152: [PhantomReference, 0 refs, 0.0000180 secs]2018-02-06T13:29:54.719+0800: 7.152: [JNI Weak Reference, 0.0000090 secs]
Desired survivor size 107347968 bytes, new threshold 1 (max 30)
- age   1:  157548032 bytes,  157548032 total
: 1677824K->154017K(1887488K), 0.1942010 secs] 1677824K->154017K(3984640K), 0.1942870 secs] [Times: user=0.20 sys=0.08, real=0.19 secs] 
Heap after GC invocations=1 (full 0):
 par new generation   total 1887488K, used 154017K [0x00000006e0c00000, 0x0000000760c00000, 0x0000000760c00000)
  eden space 1677824K,   0% used [0x00000006e0c00000, 0x00000006e0c00000, 0x0000000747280000)
  from space 209664K,  73% used [0x0000000753f40000, 0x000000075d5a8560, 0x0000000760c00000)
  to   space 209664K,   0% used [0x0000000747280000, 0x0000000747280000, 0x0000000753f40000)
 concurrent mark-sweep generation total 2097152K, used 0K [0x0000000760c00000, 0x00000007e0c00000, 0x00000007e0c00000)
 concurrent-mark-sweep perm gen total 512000K, used 22205K [0x00000007e0c00000, 0x0000000800000000, 0x0000000800000000)
}

其中-XX:+PrintTenuringDistribution只是豐富了gclog部分如下:

Desired survivor size 107347968 bytes, new threshold 1 (max 30)
- age   1:  157548032 bytes,  157548032 total
: 1677824K->154017K(1887488K), 0.1942010 secs] 1677824K->154017K(3984640K), 0.1942870 secs] [Times: user=0.20 sys=0.08, real=0.19 secs] 

描述信息:
????Survivor對象年齡棋凳,最大值設(shè)置的是30拦坠,實際計算后的閥值是1。
????Survivor大小剩岳,Desired survivor size指的是整個Survivor的1/2 107347968byte也就是 from or to 的大小贞滨,所以例子中的Survivor大小是204mb 對象閥值是1,從這個例子中可以看出進(jìn)入survivor的對象比survivor預(yù)留空間大拍棕,所以會有對象到老年代中晓铆。這時最好要調(diào)整-XX:SurvivorRatio來設(shè)置合理的Survivor
????Survivor中存活對象157mb,切年齡是1莫湘。

贈送銀彈

????額外贈送-XX:SurvivorRatio=8 含義:eden/suvivor=8 ,其中survivor包含from尤蒿、to。
eg:yong區(qū)設(shè)定2g幅垮,-XX:NewSize=2g 腰池,那么,from = 2g/(8+2) ,也就是說yong區(qū)會被分成10分,eden區(qū)占8分,survivor占2份示弓,這也能看出比值越大survivor被稀釋的越嚴(yán)重讳侨。比值越小survivor分到的空間更大。
????以上面log為例奏属,計算出合理的-XX:SurvivorRatio 跨跨,可以確定survivor為160mb*2為合理區(qū)域,所以假設(shè)比值為x,eden=320x囱皿,yong區(qū)總共 2g=320x+320勇婴,所以比值x=(2g-320)/320 ,x近似=5。

繼續(xù)分析log中的age

截取運(yùn)行過一段時間的日志分析下:

{Heap before GC invocations=11 (full 0):
 par new generation   total 1887488K, used 1716581K [0x00000006e0c00000, 0x0000000760c00000, 0x0000000760c00000)
  eden space 1677824K, 100% used [0x00000006e0c00000, 0x0000000747280000, 0x0000000747280000)
  from space 209664K,  18% used [0x0000000753f40000, 0x00000007565196a8, 0x0000000760c00000)
  to   space 209664K,   0% used [0x0000000747280000, 0x0000000747280000, 0x0000000753f40000)
 concurrent mark-sweep generation total 2097152K, used 23205K [0x0000000760c00000, 0x00000007e0c00000, 0x00000007e0c00000)
 concurrent-mark-sweep perm gen total 512000K, used 49938K [0x00000007e0c00000, 0x0000000800000000, 0x0000000800000000)
2018-02-06T14:21:29.610+0800: 3102.042: [GC2018-02-06T14:21:29.610+0800: 3102.042: [ParNew2018-02-06T14:21:29.639+0800: 3102.072: [SoftReference, 0 refs, 0.0000400 secs]2018-02-06T14:21:29.639+0800: 3102.072: [WeakReference, 9421 refs, 0.0005540 secs]2018-02-06T14:21:29.640+0800: 3102.072: [FinalReference, 4196 refs, 0.0044150 secs]2018-02-06T14:21:29.644+0800: 3102.077: [PhantomReference, 4 refs, 0.0000080 secs]2018-02-06T14:21:29.644+0800: 3102.077: [JNI Weak Reference, 0.0000090 secs]
Desired survivor size 107347968 bytes, new threshold 16 (max 30)
- age   1:    4345400 bytes,    4345400 total
- age   2:    2436856 bytes,    6782256 total
- age   3:     676112 bytes,    7458368 total
- age   4:    2323952 bytes,    9782320 total
- age   5:     599616 bytes,   10381936 total
- age   6:     563656 bytes,   10945592 total
- age   7:     567656 bytes,   11513248 total
- age   8:     815480 bytes,   12328728 total
- age   9:     527672 bytes,   12856400 total
- age  10:    3956032 bytes,   16812432 total
- age  11:   16575184 bytes,   33387616 total
: 1716581K->49462K(1887488K), 0.0345690 secs] 1739786K->72667K(3984640K), 0.0349280 secs] [Times: user=0.12 sys=0.00, real=0.04 secs] 
Heap after GC invocations=12 (full 0):
 par new generation   total 1887488K, used 49462K [0x00000006e0c00000, 0x0000000760c00000, 0x0000000760c00000)
  eden space 1677824K,   0% used [0x00000006e0c00000, 0x00000006e0c00000, 0x0000000747280000)
  from space 209664K,  23% used [0x0000000747280000, 0x000000074a2cd8a0, 0x0000000753f40000)
  to   space 209664K,   0% used [0x0000000753f40000, 0x0000000753f40000, 0x0000000760c00000)
 concurrent mark-sweep generation total 2097152K, used 23205K [0x0000000760c00000, 0x00000007e0c00000, 0x00000007e0c00000)
 concurrent-mark-sweep perm gen total 512000K, used 49938K [0x00000007e0c00000, 0x0000000800000000, 0x0000000800000000)
}

格式:- age 年齡: 處于當(dāng)前年齡段的對象大小 總大小(各個年齡段是累計的)

總結(jié)6:

????-XX:+PrintTenuringDistribution這個參數(shù)對于設(shè)置-XX:MaxTenuringThreshold有很大幫助嘱腥,閥值需要長時間觀察對象分布耕渴,設(shè)置合理即可。
????-XX:MaxTenuringThreshold設(shè)置過大問題:原本應(yīng)該晉升對象到survivor區(qū),直到survivor區(qū)溢出齿兔,一旦溢出發(fā)生橱脸,Eden+Svuvivor中對象將不再依據(jù)年齡全部提升到老年代,這樣對象老化的機(jī)制就失效了
????-XX:MaxTenuringThreshold設(shè)置過蟹治:eden區(qū)的對象會陸續(xù)送入old區(qū)添诉,對象移動本身就是開銷,cms老年代回收還會造成碎片化医寿。

傳送門jvm-對象動態(tài)年齡計算規(guī)則

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末栏赴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子糟红,更是在濱河造成了極大的恐慌艾帐,老刑警劉巖乌叶,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盆偿,死亡現(xiàn)場離奇詭異,居然都是意外死亡准浴,警方通過查閱死者的電腦和手機(jī)事扭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來乐横,“玉大人求橄,你說我怎么就攤上這事∑瞎” “怎么了罐农?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長催什。 經(jīng)常有香客問我涵亏,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任气筋,我火速辦了婚禮拆内,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宠默。我一直安慰自己麸恍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布搀矫。 她就那樣靜靜地躺著抹沪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪瓤球。 梳的紋絲不亂的頭發(fā)上采够,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音冰垄,去河邊找鬼蹬癌。 笑死,一個胖子當(dāng)著我的面吹牛虹茶,可吹牛的內(nèi)容都是我干的逝薪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蝴罪,長吁一口氣:“原來是場噩夢啊……” “哼董济!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起要门,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤虏肾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后欢搜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體封豪,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年炒瘟,在試婚紗的時候發(fā)現(xiàn)自己被綠了吹埠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡疮装,死狀恐怖缘琅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情廓推,我是刑警寧澤刷袍,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站樊展,受9級特大地震影響呻纹,放射性物質(zhì)發(fā)生泄漏鸽心。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一居暖、第九天 我趴在偏房一處隱蔽的房頂上張望顽频。 院中可真熱鬧,春花似錦太闺、人聲如沸糯景。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蟀淮。三九已至,卻和暖如春钞澳,著一層夾襖步出監(jiān)牢的瞬間怠惶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工轧粟, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留策治,地道東北人。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓兰吟,卻偏偏與公主長得像通惫,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子混蔼,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容