1. 程式人生 > >列印GC詳細資訊

列印GC詳細資訊

一些有用的 -XX選項:

Boolean 選項開啟是通過 -XX:+<option> ,關閉是通過 -XX:-<option>. ;

數值型別的選項是通過-XX:<option>=<number>設定, 數值包括使用 'm' or 'M' 表示兆位元組, 'k' or 'K' 表示千位元組, 和'g' or 'G' 表示千兆位元組 (例如, 32k 和 32768相同).

字元創選項通過-XX:<option>=<string>設定,常常用來設定檔案,路徑,和一系列的命令。

具體的選項可以參考:點選開啟連結

以下是一些幫助列印GC資訊的引數:

1.命令列引數 -verbos:gc 可以送出每一次垃圾收集時的堆和垃圾收集資訊。輸出為:

[GC  325407K->83000K(776768K), 0.2300771 secs]
[GC  325816K->83372K(776768K), 0.2454258 secs]
[Full  GC 267628K->83769K(776768K), 1.8479984 secs]

-verbos:gc 輸出的格式可能在將來的版本里有所改變。

2.-XX:+PrintGC,輸出:

[GC 118250K->113543K(130112K), 0.0094143 secs]   
[Full GC 121376K->10414K(130112K), 0.0650971 secs]  

3.通過-XX:+PrintGCDetails引數可以檢視更多垃圾回收相關的資訊。下面是序列垃圾收集器使用該引數打印出來的資訊。

[GC [DefNew: 64575K->959K(64576K), 0.0457646 secs] 196016K->133633K(261184K), 0.0459067 secs]

4.選項-XX:+PrintGCTimeStamps會提供每次回收開始時間的時間戳。這對於檢視垃圾回收頻率非常有用。

111.042:
 [GC 111.042: [DefNew: 8128K->8128K(8128K), 0.0000505 secs] 111.042: [Tenured: 18154K->2311K(24576K), 0.1290354 secs]  26282K->2311K(32704K), 0.1293306 secs]

5.-XX:+PrintHeapAtGC:列印GC前後的詳細堆疊資訊,輸出

34.702: [GC {Heap before gc invocations=7:  
def new generation   total 55296K, used 52568K [0x1ebd0000, 0x227d0000, 0x227d0000)  
eden space 49152K, 99% used [0x1ebd0000, 0x21bce430, 0x21bd0000)  
from space 6144K, 55% used [0x221d0000, 0x22527e10, 0x227d0000)  
to   space 6144K,   0% used [0x21bd0000, 0x21bd0000, 0x221d0000)  
tenured generation   total 69632K, used 2696K [0x227d0000, 0x26bd0000, 0x26bd0000)  
the space 69632K,   3% used [0x227d0000, 0x22a720f8, 0x22a72200, 0x26bd0000)  
compacting perm gen total 8192K, used 2898K [0x26bd0000, 0x273d0000, 0x2abd0000)  
the space 8192K, 35% used [0x26bd0000, 0x26ea4ba8, 0x26ea4c00, 0x273d0000)  
ro space 8192K, 66% used [0x2abd0000, 0x2b12bcc0, 0x2b12be00, 0x2b3d0000)  
rw space 12288K, 46% used [0x2b3d0000, 0x2b972060, 0x2b972200, 0x2bfd0000)  
34.735: [DefNew: 52568K->3433K(55296K), 0.0072126 secs] 55264K->6615K(124928K)Heap after gc invocations=8:  
def new generation   total 55296K, used 3433K [0x1ebd0000, 0x227d0000, 0x227d0000)  
eden space 49152K,   0% used [0x1ebd0000, 0x1ebd0000, 0x21bd0000)  
from space 6144K, 55% used [0x21bd0000, 0x21f2a5e8, 0x221d0000)  
to   space 6144K,   0% used [0x221d0000, 0x221d0000, 0x227d0000)  
tenured generation   total 69632K, used 3182K [0x227d0000, 0x26bd0000, 0x26bd0000)  
the space 69632K,   4% used [0x227d0000, 0x22aeb958, 0x22aeba00, 0x26bd0000)  
compacting perm gen total 8192K, used 2898K [0x26bd0000, 0x273d0000, 0x2abd0000)  
the space 8192K, 35% used [0x26bd0000, 0x26ea4ba8, 0x26ea4c00, 0x273d0000)  
ro space 8192K, 66% used [0x2abd0000, 0x2b12bcc0, 0x2b12be00, 0x2b3d0000)  
rw space 12288K, 46% used [0x2b3d0000, 0x2b972060, 0x2b972200, 0x2bfd0000)  
}  
, 0.0757599 secs]  
6.-Xloggc:filename,輸出垃圾收集器的資訊到一個指定的檔案。例如:-Xloggc:F://log.txt 
7.-XX:+PrintGCApplicationConcurrentTime,列印每次垃圾回收前,程式未中斷的執行時間。
輸出形式:Application time: 0.5291524 seconds

8.-XX:+PrintGCApplicationStoppedTime,列印垃圾回收期間程式暫停的時間。

Total time for which application threads were stopped: 0.0468229 seconds

這些選項可以配合使用,幫助更好分析GC的發生頻率和詳細情況。