「永久世代」の迅速な定義:
「永久的な生成が に使用されるこれらの反射物体は なるようクラスオブジェクト及び方法 オブジェクトとしてVM自体 の反射データを保持します。パーマネント 世代に直接割り当てられており、他の 世代とは独立して、サイズが です。言い換えれば[ref]
クラス定義が行く(およびアプリケーションおよび/または再展開に多数のクラスをロードする場合は、メッセージOutOfMemoryError: PermGen space
を得ることが、なぜこれが説明)ここで、これがあります。 PermSize
は、JVMオプションのユーザによって設定-Xmx
値への追加であることを
注意。しかしMaxPermSize
は、JVMが指定された量までPermSize
を成長させることを可能にします。最初にVMがロードされたときには、MaxPermSize
がデフォルト値(-client
の場合は32MB、-server
の場合は64MB)になりますが、必要になるまで実際にはその量を消費しません。あなたは256メガバイトにPermSize
とMaxPermSize
の両方を設定した場合一方、あなたは全体のヒープが-Xmx
設定に追加の256メガバイト増加していることに気づくでしょう。
64ビットVMのデフォルト値は64mです。私たちは8レールのアプリケーションを実行しているtomcatサーバーの場合、これを '512m 'に増やしました。'-XX:MaxPermSize = 512m -XX:PermSize = 512m'となります。多くのクラス定義を持つTomcat自体は大きなPerSizeを必要とし、ruby、ruby、jrubyと組み合わされたレールには巨大なPermSizeが必要です。 –
Permanent Generation(およびPermSizeパラメータとともに)はJava 8で廃止されています。これらは「Metaspace」に置き換えられています。 http://javaeesupportpatterns.blogspot.co.uk/2013/02/java-8-from-permgen-to-metaspace.htmlを参照してください。 – sleske