Java メモリ管理はヒープ世代とどのように連携しますか?

Barbara Streisand
リリース: 2024-11-05 04:29:02
オリジナル
744 人が閲覧しました

How Does Java Memory Management Work with Heap Generations?

Java メモリ管理: ヒープ生成について

Java ヒープは、実行時にオブジェクトが割り当てられ、管理されるメモリ空間です。さらに、若者、老人、永続的な世代に分かれており、それぞれが特定の目的を果たし、相互に交流しています。

若い世代

若い世代が最初です。オブジェクトが割り当てられる場所。これはさらに次のように分割されます:

  • Eden Space: 新しいオブジェクトは最初にここに割り当てられます。
  • Survivor Space:ガベージ コレクション サイクル (「マイナー GC」と呼ばれる) が移動される

古い世代 (Tenured Generation)

存続スペース内で複数のマイナー GC を乗り越えたオブジェクトは、古い世代に昇格されます。ここには、静的データや永続エンティティを表すオブジェクトなど、存続期間の長いオブジェクトが存在します。

永続世代

他の世代とは異なり、永続世代は一部ではありません。ヒープの。クラスとメソッドに関連するメタ情報用の非ヒープ メモリを保持します。 Java 8 では、永続的な世代が削除され、メタ情報はメタスペースと呼ばれる単一のスペースに保存されるようになりました。

世代間の相互作用

世代は接続されていますガベージ コレクション サイクルを通じて:

  • マイナー GC:若い世代では、エデン スペースからオブジェクトを回収し、生存者を生存者スペースに移動するために頻繁に発生します。
  • メジャー GC: 古い世代では、古くなったオブジェクトを回収するためにあまり頻繁に発生しません。
  • フル GC: というまれなイベントです。すべての世代を収集し、ヒープが著しく断片化されている場合に使用されます。

要約すると、若い世代には存続期間の短いオブジェクトが含まれ、古い世代には存続期間の長いオブジェクトが含まれ、永続世代 (またはJava 8 のメタスペース) は、クラスとメソッドに関連する非ヒープ データを格納します。ガベージ コレクション サイクルでは、オブジェクトが古くなって不要になると、これらの世代を経てオブジェクトが移動されます。

以上がJava メモリ管理はヒープ世代とどのように連携しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!