69

私は以前にこの質問をしたことがあります-JVMフラグCMSClassUnloadingEnabledは実際に何をしますか?、でも今回は少し違います!

フラグを設定してJavaVMを起動すると-XX:+CMSPermGenSweepingEnabled、次のメッセージが出力されます。

今後、CMSPermGenSweepingEnabledの代わりにCMSClassUnloadingEnabledを使用してください

フラグはエラー-XX:+CMSPermGenSweepingEnabledを軽減するためによく使用されますが、上記のアドバイスに従うことでまだこれらのエラーが発生していることを他の場所で読んだことがありますが、VMを維持するだけでなく、再起動の間も長く維持されています。PermGen OutOfMemory-XX:+CMSPermGenSweepingEnabled-XX:+CMSClassUnloadingEnabled

-XX:+CMSClassUnloadingEnabled本当に取って代わるのでしょうか-XX:+CMSPermGenSweepingEnabled、それとも両方を持つことでまだいくつかの利点がありますか?

前もって感謝します

リッチps:perm genの問題の根本的な原因は、通常はクラスローダーリークであることがわかっています。これは、上記のオプションを使用した場合にJVMが生成するメッセージに関するものです。

4

1 に答える 1

78

私の知る限り、1.6 JVMで行うのCMSPermGenSweepingEnabledは、そのメッセージを出力することだけです。1.5の場合とは異なり、メッセージは処理されません。CMSClassUnloadingEnabled影響を与えるには、UseConcMarkSweepGCも設定する必要があります。

于 2010-09-15T17:14:05.157 に答える