在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