打印GC详细信息

一些有用的 -XX选项:

Boolean 选项打开是通过 -XX:+ ,关闭是通过 -XX:-. ;

数值类型的选项是通过-XX:设置, 数值包括使用 'm' or 'M' 表示兆字节, 'k' or 'K' 表示千字节, 和'g' or 'G' 表示千兆字节 (例如, 32k 和 32768相同).

字符创选项通过-XX:设置,常常用来设置文件,路径,和一系列的命令。

具体的选项可以参考:点击打开链接

以下是一些帮助打印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的发生频率和详细情况。

你可能感兴趣的:(java,GC)