以前にこの質問をしたことがあります- JVMフラグCMSClassUnloadingEnabledは実際に何をしますか? 、しかし今回は少し異なります!
Java VMで-XX:+CMSPermGenSweepingEnabled
フラグを設定すると、次のメッセージが出力されます。
将来的にはCMSPermGenSweepingEnabledの代わりにCMSClassUnloadingEnabledを使用してください
-XX:+CMSPermGenSweepingEnabled
フラグは、PermGen OutOfMemory
エラー、しかし、私は 他の場所で読む を持っている。人々は上記のアドバイスに従えば、これらのエラーがまだあることを発見したが、-XX:+CMSPermGenSweepingEnabled
と同様 -XX:+CMSClassUnloadingEnabled
彼らのVMは、再起動の間に長く滞在しました。
-XX:+CMSClassUnloadingEnabled
は本当に-XX:+CMSPermGenSweepingEnabled
またはそれらの両方を持つことにはまだいくつかの利点がありますか?
前もって感謝します
リッチps:perm genの問題の根本的な原因は通常クラスローダーリークであることがわかっています。これは、上記のオプションを使用した場合にJVMが生成するメッセージに関するものです。
私が言えることから、1.6 JVMがCMSPermGenSweepingEnabled
で行うことは、そのメッセージを出力することだけです-1.5のようには処理されません。 CMSClassUnloadingEnabled
が影響を与えるには、UseConcMarkSweepGC
も設定する必要があります。