1

Javaで優れたpermgenスペース文字列を設計するにはどうすればよいのでしょうか。私の研究と理解に基づいて、私は次のことを思いついた:

例:JAVA_OPTS='-Xmx512m -XX:MaxPermSize=256m -server -Djava.awt.headless=true'

申し訳ありませんが、最初に質問を投稿したときに例が貼り付けられませんでした......

4

1 に答える 1

5

私も質問について少し不明確ですが、permgenの最大サイズに使用するのに適した数値を意味する場合、それはアプリとロードされたクラス/メソッドの数によって異なります. それらを判断するのに役立つように、典型的で最も負荷の高いユース ケースでアプリケーションを実行し、JConsole を使用して、アプリケーションが実際に何を使用するかを確認できます。

JConsoleはすべてのヒープと永久世代スペースを表示できるため、MaxPermSize に必要な数をその方法で判断できます。これはクラス + メソッド データであるため、インスタンスの数ではなく、アプリケーションがロードするクラスの数の関数になります。また、ヒープ サイズとは別のものであることに注意してください (実際、JConsole はメモリの使用を非ヒープ メモリの使用として分類します)。私がリンクした JConsole ページで、図 5 を参照してください。これは一番右の非ヒープで、クリックできます。

Java 6 では、アプリは追加の構成なしで JConsole からの接続を許可します。Java 5 では、いくつかのフラグを設定する必要がある場合があります。これはJDKに含まれています。

参考までに、最大 10,000 個のクラスがロードされたアプリケーションの場合、MaxPermSize は 96m です。

于 2008-10-04T18:28:43.300 に答える