【jvm深入了解的高手回答下啊】jvm Perm区gc回收问题
本帖最后由 fhqibjg 于 2013-02-17 18:15:45 编辑 我们知道jvm里堆空间划分为三个代:
年轻代(Young Generation)
年老代(Old Generation)
永久代(Permanent Generation)
年轻代和年老代是存储动态产生的对象。永久带主要是存储的是java的类信息,包括解析得到的方法、属性、字段等等。永久带基本不参与垃圾回收。
现在问题出现了:
[Full GC (System) 3601.118: [CMS: 187025K->113740K(5242880K), 0.8019600 secs] 1129480K->113740K(7340032K), [CMS Perm : 57763K->50540K(131072K)], 0.8024830 secs] [Times: user=0.80 sys=0.00, real=0.80 secs]
1,当出现Fullgc后,明显看到perm己发生过回收,且系统中会出现反射调用失败的一些提示信息。
2,在配制cms回收时,看到Perm开启CMS回收Perm区选项:
+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled
也就是说perm区是可以回收的,那perm区可回收这与jdk版有关系(原老版本是不可以)?还有perm区回收是主要回收什么(全部都回收还是只收收部分)?
jvm jvm堆栈 fullGc perm静态区
[解决办法]