我之前曾问过这个问题-JVM标志CMSClassUnloadingEnabled实际做什么?,但是这次略有不同!
如果我启动-XX:+CMSPermGenSweepingEnabled
设置了标志的Java VM,则会显示以下消息:
以后请使用CMSClassUnloadingEnabled代替CMSPermGenSweepingEnabled
该-XX:+CMSPermGenSweepingEnabled
标志通常用于减轻PermGen OutOfMemory
错误,但是我在其他地方读到,人们发现通过遵循上述建议,他们仍然存在这些错误,但是坚持使用-XX:+CMSPermGenSweepingEnabled
以及-XX:+CMSClassUnloadingEnabled
他们的VM在重新启动之间停留的时间更长。
难道-XX:+CMSClassUnloadingEnabled
真的优先于-XX:+CMSPermGenSweepingEnabled
或者是仍然在他俩都有些什么好处?
提前致谢
Rich ps:我知道perm gen问题的根本原因通常仍然是Classloader泄漏,这更多地是关于使用上述选项时JVM产生的消息。