ホームページ >Java >&#&チュートリアル >PermGen が JDK 8 で削除されたのはなぜですか?

PermGen が JDK 8 で削除されたのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-14 22:35:02677ブラウズ

Why Was PermGen Eliminated in JDK 8?

JDK 8 での PermGen の削除: 理由を理解する

Java Development Kit (JDK) 8 の PermGen (永続生成) の概念は削除されました。このバージョンで Eclipse を実行すると、MaxPermSize オプションが無視されることを示す警告メッセージが表示される場合があります。この削除は、次のような PermGen に関連するいくつかの欠点によって引き起こされました。

  • 起動時にサイズが固定されているため、動的に調整することが困難です。
  • Java オブジェクトとしての内部ホットスポット タイプにより、複雑さが生じます。
  • フル ガベージ コレクション中に特別なイテレータとメタデータが必要。
  • クラス データの割り当て解除を同時に行う場合と GC 一時停止の外で制限がある。
  • 依存する将来の最適化への障害PermGen の削除。

これらの問題に対処するために、PermGen に代わる Metaspace コンセプトが導入されました。メタスペースには次の利点があります。

  • クラスのライフタイムをクラス ローダーに一致させるという Java 言語仕様のプロパティと一致しています。
  • 特定のシナリオを除き、線形割り当てを利用し、個別の再利用を排除します。
  • ガベージ コレクションのオーバーヘッドが削減され、パフォーマンスが向上します。

メタスペースは、-XX:MaxMetaspaceSize フラグと -XX:MetaspaceSize フラグを使用して調整でき、管理者は初期サイズと最大制限を定義できます。 。デフォルトでは、Metaspace のサイズは無制限で、実行時のアプリケーションの要求に基づいて動的に調整できます。

PermGen の削除と Metaspace の導入により、JDK 8 以降では次のような他の最適化と機能が有効になりました。アプリケーション クラスのデータ共有、若いコレクションの機能強化、メタデータ サイズの削減により、最終的に GC パフォーマンスと全体的な効率の向上につながります。

以上がPermGen が JDK 8 で削除されたのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。