ホームページ > Java > &#&チュートリアル > MaxPermSize VM オプションが JDK 8 で無視されるのはなぜですか?

MaxPermSize VM オプションが JDK 8 で無視されるのはなぜですか?

Linda Hamilton
リリース: 2024-11-14 20:53:02
オリジナル
432 人が閲覧しました

Why is the MaxPermSize VM option ignored in JDK 8?

JDK 8 での PermGen の削除: VM オプションが無視される理由

はじめに

JDK 8 の導入永続世代 (PermGen) の削除を含む、Java 仮想マシン (JVM) アーキテクチャへの大幅な変更。この変更は、Eclipse および他のアプリケーションが JVM と対話する方法に影響を与えました。

問題

JDK 8 で Eclipse を実行すると、MaxPermSize が設定されていないことを示す警告メッセージが表示される場合があります。 VM オプションは無視されます。このメッセージは、このパラメータを破棄する理由について疑問を引き起こします。

MaxPermSize を無視する理由

MaxPermSize VM オプションを無視する理由は、PermGen に関連するいくつかの欠点に起因します。以前の JDK バージョン:

  • 固定サイズ: PermGen は起動時に固定サイズを持っていたため、動的クラス読み込みが必要なアプリケーションのメモリ割り当てを最適化することが困難でした。
  • 内部ホットスポット タイプ: PermGen に保存されているオブジェクトは Java オブジェクトであり、ガベージ コレクション間での永続性によりメモリ リークの可能性がありました。
  • 単純化されたコレクション: PermGen の削除は許可されていますフル ガベージ コレクション サイクルを簡素化し、メタデータ用の特別なイテレータの必要性を排除します。
  • 同時クラス データ割り当て解除: MetaSpace により、GC 一時停止以外でクラス データの割り当て解除を同時に実行できるようになり、パフォーマンスが向上します。 .
  • 将来の改善点: PermGen の廃止により、以前は制約によって制限されていた将来の JVM の改善と最適化への道が開かれます。

メタスペース:置き換え

JDK 8 では、PermGen は Metaspace に置き換えられました。これにはいくつかの利点があります。

  • クラス ローダー アフィニティ: メタスペースは特定のクラス ローダー。クラスの有効期間が対応するローダーのライフサイクルと一致するようにします。
  • 線形割り当て: メタスペースは線形割り当てを使用し、メモリ管理を簡素化します。
  • いいえ個別の再利用: メタスペースは、クラスの再定義と読み込みの失敗を除き、個別の再利用を実行しないため、オーバーヘッドがさらに削減されます。
  • GC スキャンまたは圧縮なし: メタスペース オブジェクトはスキャンまたは圧縮されません。ガベージ コレクション サイクル中に、パフォーマンスが向上します。
  • 最適化されたチューニング: メタスペースは、-XX:MaxMetaspaceSize フラグと -XX:MetaspaceSize フラグを使用して調整でき、より柔軟なメモリ管理が可能になります。

結論

JDK 8 で PermGen が削除されたことにより、Java アプリケーションのパフォーマンスと安定性が大幅に向上しました。 MaxPermSize VM オプションはもう関係ありませんが、Metaspace はアプリケーションのメタデータを処理するための高度に最適化された効率的なソリューションを提供します。

以上がMaxPermSize VM オプションが JDK 8 で無視されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート