JDK 8 をインストールし、Eclipse を実行しようとしています。次の警告メッセージが表示されます。
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512m;
support was removed in 8.0
この VM オプションを無視する理由は何ですか?
これらの引数を無視する理由は、次の欠点があるため、JDK8 の HotSpot で永続的な世代が削除されたためです。
Permanent Generation (PermGen) スペースは完全に削除され、Metaspace と呼ばれる新しいスペースに置き換えられました。PermGen を削除した結果、明らかにPermSize および MaxPermSize JVM 引数が無視され、java.lang.OutOfMemoryError: PermGen エラーが発生することはありません。
メタスペースの利点
メタスペースのチューニング
最大メタスペース サイズは -XX:MaxMetaspaceSize フラグを使用して設定できます。デフォルトは無制限です。つまり、システム メモリのみが制限されます。-XX:MetaspaceSize チューニング フラグは、メタスペースの初期サイズを定義します。このフラグを指定しない場合、実行時のアプリケーションの要求に応じてメタスペースのサイズが動的に変更されます。
変更により、将来的に他の最適化と機能が有効になります
GC パフォーマンスも向上しています。詳細
Permanent Generation (PermGen) スペースは完全に削除され、Metaspace と呼ばれる新しいスペースに置き換えられました。PermGen を削除した結果、明らかに PermSize および MaxPermSize JVM 引数が無視され、PermGenjava.lang.OutOfMemoryError
エラーが発生することはありません。
JDK 8 HotSpot JVM は、クラス メタデータの表現にネイティブ メモリを使用するようになり、Metaspace と呼ばれます。 続きを読む>>
PermGen スペースが削除されたためです。メモリ管理が少し変更されました。
Java 8 用の Oracle の JVM 実装では、PermGen モデルが取り除かれ、Metaspaceに置き換えられました。