这里给出的是基本的gc log的配置。
-Xmx:最大的jvm堆的配置,-Xmx:初始的jvm的堆的配置,-Xmn:Young Generation 的大小
如果要打印出GC的log,需要配上下面的配置:-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -verbose:gc -Xloggc:gc.log
如果是在eclipse的ini里面,gc.log会保存在eclipse的目录下面,如果是在程序的run configuration里配置,log会在应用的目录下面。
如果配置成功的话,会在log里 呈现类似这样的信息:
0.083: [GC 0.084: [DefNew: 6487K->148K(9216K), 0.0071931secs] 6487K->6292K(19456K), 0.0072509 secs] [Times: user=0.01 sys=0.00,real=0.01 secs]
0.093: [GC 0.093: [DefNew: 6378K->6378K(9216K), 0.0000103secs]0.093: [Tenured: 6144K->6292K(10240K), 0.0074436 secs]12522K->6292K(19456K), [Perm : 369K->369K(12288K)], 0.0075513secs][Times: user=0.02 sys=0.00, real=0.01 secs]
0.103: [GC 0.103: [DefNew: 4152K->0K(9216K), 0.0023525 secs]10445K->8340K(19456K), 0.0024069 secs] [Times: user=0.00 sys=0.00, real=0.00secs]
比如:
0.073: [GC 0.073: [DefNew: 6487K->148K(9216K), 0.0064173secs] 6487K->6292K(19456K), 0.0064943 secs] [Times: user=0.00 sys=0.00,real=0.01 secs]
DefNew: 6487K->148K(9216K)执行完minor gc后,young Gen的空间得到释放,从6487k变成了148k,总共使用空间是9216k。堆的使用空间从6487k变成了6292k.图下给出的是jvm hotspot的内存图,已验证。