我有点问过这个问题之前 - What does JVM flag CMSClassUnloadingEnabled actually do?,但这次它有点不同!CMSPermGenSweepingEnabled vs CMSClassUnloadingEnabled
如果我启动Java VM与-XX:+CMSPermGenSweepingEnabled
标志设置,打印以下消息:
请在未来
使用CMSClassUnloadingEnabled到位CMSPermGenSweepingEnabled的-XX:+CMSPermGenSweepingEnabled
标志被经常使用以减轻对PermGen OutOfMemory
错误,但我有read elsewhere,人们发现,通过遵循上述建议,他们仍然有这些错误,但通过坚持与-XX:+CMSPermGenSweepingEnabled
以及-XX:+CMSClassUnloadingEnabled
他们的VM在重启之间保持了更长的时间。
请问-XX:+CMSClassUnloadingEnabled
是否真的取代了-XX:+CMSPermGenSweepingEnabled
还是让它们兼有还有一些好处?
在此先感谢
丰富 PS:我知道,烫发根问题的根本原因仍然是一般类加载器泄漏,这更多的是,如果我们使用上述选项的JVM产生的消息。
谢谢 - 你有任何链接或其他方式来支持? – Rich
下载JDK源代码(包括热点)并检查'hotspot/src/share/vm/runtime/globals.hpp'。 'CMSPermGenSweepingEnabled'在1.5中存在,在1.6中不存在。另外,1.6版本的'hotspot/src/share/vm/runtime/arguments.cpp'包含了用于打印消息的新代码。 – kschneid
这是有帮助 – hvgotcodes