我以前问过这个问题 - JVM 标志 CMSClassUnloadingEnabled 实际上是做什么的?,但这次略有不同!
如果我启动一个-XX:+CMSPermGenSweepingEnabled
设置了标志的 Java VM,将打印以下消息:
以后请使用 CMSClassUnloadingEnabled 代替 CMSPermGenSweepingEnabled
该-XX:+CMSPermGenSweepingEnabled
标志通常用于缓解PermGen OutOfMemory
错误,但是我在其他地方读到人们发现通过遵循上述建议他们仍然有这些错误,但是通过坚持-XX:+CMSPermGenSweepingEnabled
以及-XX:+CMSClassUnloadingEnabled
他们的虚拟机在重新启动之间保持更长时间。
-XX:+CMSClassUnloadingEnabled
真的会取代-XX:+CMSPermGenSweepingEnabled
它们还是两者兼而有之?
提前致谢
丰富的ps:我知道perm gen问题的根本原因通常仍然是Classloader泄漏,这更多是关于如果我们使用上述选项时JVM产生的消息。