我把eclipse的启动参数改成:
-Xms640m -Xmx640m -Xmn192m -XX:MaxPermSize=256m -verbose:gc -Xloggc:gc.log启动eclipse后,gc log显示虚拟机进行了8次Full GC:7.923: [Full GC 100771K->21576K(635712K), 0.1368938 secs]
10.069: [Full GC 42283K->24985K(635712K), 0.1107913 secs]
14.119: [Full GC 121399K->27401K(635712K), 0.1296433 secs]
16.197: [Full GC 45859K->28636K(635712K), 0.1737228 secs]
18.181: [Full GC 43159K->29710K(635712K), 0.1453436 secs]
23.701: [Full GC 83030K->32346K(635712K), 0.1840519 secs]
31.812: [Full GC 93752K->36642K(635712K), 0.2046097 secs]
40.347: [Full GC 73166K->34925K(635712K), 0.2444477 secs]不太理解这个log的具体含义,但第一条log的意思应该是某个区域在100771K占满的时候触发了Full GC。问题是,我设置的堆区大小都不止 100771K,为什么在这个时候发生Full GC?
-Xms640m -Xmx640m -Xmn192m -XX:MaxPermSize=256m -verbose:gc -Xloggc:gc.log启动eclipse后,gc log显示虚拟机进行了8次Full GC:7.923: [Full GC 100771K->21576K(635712K), 0.1368938 secs]
10.069: [Full GC 42283K->24985K(635712K), 0.1107913 secs]
14.119: [Full GC 121399K->27401K(635712K), 0.1296433 secs]
16.197: [Full GC 45859K->28636K(635712K), 0.1737228 secs]
18.181: [Full GC 43159K->29710K(635712K), 0.1453436 secs]
23.701: [Full GC 83030K->32346K(635712K), 0.1840519 secs]
31.812: [Full GC 93752K->36642K(635712K), 0.2046097 secs]
40.347: [Full GC 73166K->34925K(635712K), 0.2444477 secs]不太理解这个log的具体含义,但第一条log的意思应该是某个区域在100771K占满的时候触发了Full GC。问题是,我设置的堆区大小都不止 100771K,为什么在这个时候发生Full GC?
E:\jdk1.6.0_21>jstat -gc 2660
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
19648.0 19648.0 0.0 0.0 157312.0 111320.9 458752.0 34925.2 47360.0 47195.5 0 0.000 8 1.331 1.331E:\jdk1.6.0_21>jstat -gccapacity 2660
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC PGCMN PGCMX PGC PC YGC FGC
196608.0 196608.0 196608.0 19648.0 19648.0 157312.0 458752.0 458752.0 458752.0 458752.0 12288.0 262144.0 47360.0 47360.0 0 8