在Java 6中我们曾经使用下面的GC配置来防止Perm GenOutOfMemoryException
多次重新部署我们的应用程序后:
-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled
我们正在转向 Java 7,并希望使用新的 G1 GC,据我所知,它将类从 Java 内存中的 PermGen 移动到本机内存。
是否有一些标志可以卸载未使用的类?
G1 在 Full GC 期间执行类卸载,因此您不需要指定任何参数来启用此操作。
您可以使用以下命令亲自查看-XX:+TraceClassUnloading
争论。
另外,请查看 HotSpot GC 邮件列表中的此电子邮件线程:G1GC 中的错误,当代码缓存已满时,它会执行 Full GC,从而导致过度杀伤 http://mail.openjdk.java.net/pipermail/hotspot-gc-use/2013-May/001548.html。他们相当广泛地讨论了 G1 中的类卸载。总而言之,您可以使用-noclassgc
如果您看到类卸载问题,但通常 G1 中的类卸载没有问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)