在JDK 1.6中:我看到完整的GC已经运行,但老一代和perm gen空间没有完全使用 - 问题与我的理解一样FGC只在旧gen或perm gen已满 - 我无法理解即使使用率很低,为什么它仍然运行?完整的GC - Sun JVM运行频率
参见jstat的输出-gcutil下面:
S0 S1 E O P YGC YGCT FGC FGCT GCT 0.00 82.14 51.17 13.78 26.43 219 19.347 1 0.131 19.479 S0 S1 E O P YGC YGCT FGC FGCT GCT 82.14 0.00 9.12 13.92 26.66 222 19.771 1 0.131 19.902 S0 S1 E O P YGC YGCT FGC FGCT GCT 82.14 0.00 11.07 9.07 24.15 230 20.166 2 1.851 22.017
我的最小/最大堆是1024M和最小和最大的PermGen空间被定义为768M。
一个可能的原因可能是RMI:“RMI强制定期完全收集,这些收集的频率可以通过properties.java -Dsun.rmi.dgc.client.gcInterval和 -Dsun.rmi.dgc.server来控制。 gcInterval“http://java.sun.com/docs/hotspot/gc1.4.2/ – Anna 2010-10-19 04:23:38