回收方法区
相比新生代一次GC可以回收70%至99%的内存空间,方法区的垃圾回收性价比并不高。
但在大量使用反射、动态代理、CGLib等字节码框架,动态生成JSP以及OSGi这类频繁自定义类加载器的场景下,
回收方法区是有必要的。
回收的内容
- 废弃的常量
- 不再使用的类型
回收类型数据需满足的条件
- 该类及其派生类的所有实例都被回收了
- 加载该类的类加载器已经被回收了
- 该类的
Class对象没有被任何地方引用
回收类型数据相关的配置
| 项 | 作用 |
|---|---|
-Xnoclassgc |
HotSpot虚拟机提供了是否对类型进行回收的设置 |
| -verbose:class -XX:+TraceClassLoading、 -XX:+TraceClassUnLoading |
查看类加载和卸载信息。 第1、2个参数需要在 Product版虚拟机使用第3个参数需要 FastDebug版虚拟机使用 |