CMSPermGenSweepingEnabled

CMSPermGenSweepingEnabled

我之前曾问过这个问题-What does JVM flag CMSClassUnloadingEnabled actually do?,但是这次有点不同!

如果启动设置了-XX:+CMSPermGenSweepingEnabled标志的Java VM,则会显示以下消息:


-XX:+CMSPermGenSweepingEnabled标志通常用于缓解PermGen OutOfMemory错误,但是我发现read elsewhere人们发现,按照上述建议,他们仍然存在这些错误,但是通过坚持使用-XX:+CMSPermGenSweepingEnabled-XX:+CMSClassUnloadingEnabled,其虚拟机在重新启动之间停留的时间更长。
-XX:+CMSClassUnloadingEnabled是否真的取代了-XX:+CMSPermGenSweepingEnabled,还是同时拥有两者还有一些好处?

提前致谢

丰富
ps:我知道烫发问题的根源通常仍然是Classloader泄漏,这更多地是关于使用上述选项时JVM产生的消息。

最佳答案

据我所知,1.6 JVM使用CMSPermGenSweepingEnabled所做的唯一事情就是打印该消息-它没有像1.5中那样处理。为了使CMSClassUnloadingEnabled发挥作用,还必须设置UseConcMarkSweepGC

07-27 15:08