2013-09-23 37 views
6

在Java 6中,我们习惯使用下面的GC配置,以防止烫发根OutOfMemoryException后,我们的应用程序的几个调动:类卸载

-XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

我们要搬到Java 7,并且想要使用新的G1 GC,它从我读过的内容中将Java中的PermGen的类移动到本机内存中。

是否有一些标志来启用卸载未使用的类?

回答

7

G1在完整GC期间执行类卸载,因此您无需指定任何参数即可启用该功能。

您可以通过使用-XX:+TraceClassUnloading参数来查看自己。

此外,请从HotSpot GC邮件列表中查看此电子邮件主题:Bug in G1GC it performs Full GC when code cache is full resulting in overkill。他们相当广泛地讨论G1级的卸载问题。总之,如果您发现类卸载问题,则可以使用-noclassgc,但通常在G1中卸载类没有问题。