spring、hibernet、zk などを含む約 125 個の jar に依存する Web アプリケーションがあります。
Tomcat サーバーを起動すると、約 55K のクラスが permgen にロードされます。この巨大なクラスのロードのせいで、アプリケーションの起動にはかなりの時間がかかります。さらに、プログラムの実行中に他のクラスもロードされるため、アプリケーションが必要とする permgen スペースは非常に大きくなります。
- アプリケーションが高速に起動するように、起動時に読み込まれるクラスの数を制御する方法はありますか?
- 使用頻度の低いクラスを permgen から解放/アンロードする方法はありますか? [これらの質問は、外部 jar からロードされるクラスに固有のものです]
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled オプションを Java に指定してみました。しかし、しばらくしてアンロードされたクラスは 42 個だけでした。
ヘルプやポインタは大歓迎です。