回收方法区

相比新生代一次GC可以回收70%至99%的内存空间,方法区的垃圾回收性价比并不高。

但在大量使用反射、动态代理、CGLib等字节码框架,动态生成JSP以及OSGi这类频繁自定义类加载器的场景下,

回收方法区是有必要的。

回收的内容
  • 废弃的常量
  • 不再使用的类型
回收类型数据需满足的条件
  • 该类及其派生类的所有实例都被回收了
  • 加载该类的类加载器已经被回收了
  • 该类的Class对象没有被任何地方引用
回收类型数据相关的配置
作用
-Xnoclassgc HotSpot虚拟机提供了是否对类型进行回收的设置
-verbose:class
-XX:+TraceClassLoading、
-XX:+TraceClassUnLoading
查看类加载和卸载信息。
第1、2个参数需要在Product版虚拟机使用
第3个参数需要FastDebug版虚拟机使用