JAVA_查看垃圾回收日志

Java GC類型:

Java中的GC有哪幾種類型踱稍?

UseSerialGC
虛擬機(jī)運(yùn)行在Client模式的默認(rèn)值,打開此開關(guān)參數(shù)后固棚,
使用Serial+Serial Old收集器組合進(jìn)行垃圾收集都弹。
UseParNewGC
打開此開關(guān)參數(shù)后,使用ParNew+Serial Old收集器組合進(jìn)行垃圾收集锣杂。
UseConcMarkSweepGC
打開此開關(guān)參數(shù)后脂倦,使用ParNew+CMS+Serial Old收集器組合進(jìn)行垃圾收集。Serial Old作為CMS收集器出現(xiàn)Concurrent Mode Failure的備用垃圾收集器元莫。
UseParallelGC
虛擬機(jī)運(yùn)行在Server模式的默認(rèn)值赖阻,打開此開關(guān)參數(shù)后,使用Parallel Scavenge+Serial Old收集器組合進(jìn)行垃圾收集踱蠢。
UseParallelOldGC
打開此開關(guān)參數(shù)后政供,使用Parallel Scavenge+Parallel Old收集器組合進(jìn)行垃圾收集。

在Java程序啟動(dòng)完成后朽基,通過jps觀察進(jìn)程來查詢到當(dāng)前運(yùn)行的java進(jìn)程布隔,使用
jinfo –flag UseSerialGC 進(jìn)程
的方式可以定位其使用的gc策略,因?yàn)檫@些參數(shù)都是boolean型的常量稼虎,如果使用該種gc策略會(huì)出現(xiàn)+號(hào)衅檀,否則-號(hào)。
使用-XX:+上述GC策略可以開啟對(duì)應(yīng)的GC策略霎俩。

GC日志查看
可以通過在java命令種加入?yún)?shù)來指定對(duì)應(yīng)的gc類型哀军,打印gc日志信息并輸出至文件等策略。

GC的日志是以替換的方式(>)寫入的打却,而不是追加(>>)杉适,如果下次寫入到同一個(gè)文件中的話,以前的GC內(nèi)容會(huì)被清空柳击。

對(duì)應(yīng)的參數(shù)列表
-XX:+PrintGC 輸出GC日志-XX:+PrintGCDetails 輸出GC的詳細(xì)日志-XX:+PrintGCTimeStamps 輸出GC的時(shí)間戳(以基準(zhǔn)時(shí)間的形式)-XX:+PrintGCDateStamps 輸出GC的時(shí)間戳(以日期的形式猿推,如 2013-05-04T21:53:59.234+0800)-XX:+PrintHeapAtGC 在進(jìn)行GC的前后打印出堆的信息-Xloggc:../logs/gc.log 日志文件的輸出路徑

這里使用如下的參數(shù)來進(jìn)行日志的打印:
-XX:+PrintGCDateStamps -XX:+PrintGCDetails -Xloggc:./gclogs

對(duì)于新生代回收的一行日志捌肴,其基本內(nèi)容如下:
2014-07-18T16:02:17.606+0800: 611.633: [GC 611.633: [DefNew: 843458K->2K(948864K), 0.0059180 secs] 2186589K->1343132K(3057292K), 0.0059490 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]

其含義大概如下:
2014-07-18T16:02:17.606+0800(當(dāng)前時(shí)間戳): 611.633(時(shí)間戳): [GC(表示Young GC) 611.633: [DefNew(單線程Serial年輕代GC): 843458K(年輕代垃圾回收前的大械虐取)->2K(年輕代回收后的大小)(948864K(年輕代總大凶粗)), 0.0059180 secs(本次回收的時(shí)間)] 2186589K(整個(gè)堆回收前的大谢辔濉)->1343132K(整個(gè)堆回收后的大小)(3057292K(堆總大屑病)), 0.0059490 secs(回收時(shí)間)] [Times: user=0.00(用戶耗時(shí)) sys=0.00(系統(tǒng)耗時(shí)), real=0.00 secs(實(shí)際耗時(shí))]

老年代回收的日志如下:
2014-07-18T16:19:16.794+0800: 1630.821: [GC 1630.821: [DefNew: 1005567K->111679K(1005568K), 0.9152360 secs]1631.736: [Tenured:2573912K->1340650K(2574068K), 1.8511050 secs] 3122548K->1340650K(3579636K), [Perm : 17882K->17882K(21248K)], 2.7854350 secs] [Times: user=2.57 sys=0.22, real=2.79 secs]

gc日志中的最后貌似是系統(tǒng)運(yùn)行完成前的快照:

Heap def new generation total 1005568K, used 111158K [0x00000006fae00000, 0x000000073f110000, 0x0000000750350000) eden space 893888K, 12% used [0x00000006fae00000, 0x0000000701710e90, 0x00000007316f0000) from space 111680K, 3% used [0x0000000738400000, 0x000000073877c9b0, 0x000000073f110000) to space 111680K, 0% used [0x00000007316f0000, 0x00000007316f0000, 0x0000000738400000) tenured generation total 2234420K, used 1347671K [0x0000000750350000, 0x00000007d895d000, 0x00000007fae00000) the space 2234420K, 60% used [0x0000000750350000, 0x00000007a2765cb8, 0x00000007a2765e00, 0x00000007d895d000) compacting perm gen total 21248K, used 17994K [0x00000007fae00000, 0x00000007fc2c0000, 0x0000000800000000) the space 21248K, 84% used [0x00000007fae00000, 0x00000007fbf92a50, 0x00000007fbf92c00, 0x00000007fc2c0000)No shared spaces configured.

GC日志的離線分析
可以使用一些離線的工具來對(duì)GC日志進(jìn)行分析坦喘,比如sun的gchisto( https://java.net/projects/gchisto)盲再,gcviewer( https://github.com/chewiebug/GCViewer ),這些都是開源的工具瓣铣,用戶可以直接通過版本控制工具下載其源碼洲胖,進(jìn)行離線分析。

下面就已gcviewer為例坯沪,簡(jiǎn)要分析一下gc日志的離線分析绿映,gcviewer源代碼工程是maven結(jié)構(gòu)的,可以直接用maven進(jìn)行package腐晾,這里編譯的是1.34版本叉弦,本版本的快照已經(jīng)上傳至附件中。

需要說明的是藻糖,gcviewer支持多種參數(shù)生成的gc日志淹冰,直接通過java –jar的方式運(yùn)行,加載生成的gc日志即可:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末巨柒,一起剝皮案震驚了整個(gè)濱河市樱拴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌洋满,老刑警劉巖晶乔,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異牺勾,居然都是意外死亡正罢,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門驻民,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翻具,“玉大人,你說我怎么就攤上這事回还●捎荆” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵柠硕,是天一觀的道長(zhǎng)工禾。 經(jīng)常有香客問我,道長(zhǎng)仅叫,這世上最難降的妖魔是什么帜篇? 我笑而不...
    開封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任糙捺,我火速辦了婚禮诫咱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘洪灯。我一直安慰自己坎缭,他們只是感情好竟痰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掏呼,像睡著了一般坏快。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上憎夷,一...
    開封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天莽鸿,我揣著相機(jī)與錄音,去河邊找鬼拾给。 笑死祥得,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的蒋得。 我是一名探鬼主播级及,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼额衙!你這毒婦竟也來了饮焦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤窍侧,失蹤者是張志新(化名)和其女友劉穎县踢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伟件,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡殿雪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锋爪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丙曙。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖其骄,靈堂內(nèi)的尸體忽然破棺而出亏镰,到底是詐尸還是另有隱情,我是刑警寧澤拯爽,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布索抓,位于F島的核電站,受9級(jí)特大地震影響毯炮,放射性物質(zhì)發(fā)生泄漏逼肯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一桃煎、第九天 我趴在偏房一處隱蔽的房頂上張望篮幢。 院中可真熱鬧,春花似錦为迈、人聲如沸三椿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搜锰。三九已至伴郁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蛋叼,已是汗流浹背焊傅。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狈涮,地道東北人租冠。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像薯嗤,于是被迫代替她去往敵國和親顽爹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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