java 启用CMSPerm代扫描与启用CMS类卸载

s5a0g9ez  于 2023-01-01  发布在  Java
关注(0)|答案(1)|浏览(91)

我以前问过这个问题-What does JVM flag CMSClassUnloadingEnabled actually do?,但这次略有不同!
如果我启动设置了-XX:+CMSPermGenSweepingEnabled标志的Java VM,将显示以下消息:
以后请使用CMSClassUnloadingEnabled代替CMSPermGenSweepingEnabled
-XX:+CMSPermGenSweepingEnabled标志通常用于减轻PermGen OutOfMemory错误,但是我在其他地方读到,人们发现,通过遵循上述建议,他们仍然有这些错误,但通过坚持使用-XX:+CMSPermGenSweepingEnabled以及-XX:+CMSClassUnloadingEnabled,他们的VM在重新启动之间停留的时间更长。
-XX:+CMSClassUnloadingEnabled真的取代了-XX:+CMSPermGenSweepingEnabled吗?还是两者都有好处?
Rich ps:我知道perm gen问题的根本原因通常仍然是类加载器泄漏,这更多地是关于如果我们使用上面的选项,JVM产生的消息。

niwlg2el

niwlg2el1#

据我所知,1.6 JVM对CMSPermGenSweepingEnabled所做的唯一事情就是打印该消息--它不是以1.5中的方式处理的。要使CMSClassUnloadingEnabled产生任何影响,还必须设置UseConcMarkSweepGC

相关问题