ホームページ  >  記事  >  Java  >  Java メモリはどのように構造化され、管理されますか?

Java メモリはどのように構造化され、管理されますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-11 20:43:03874ブラウズ

How is Java Memory Structured and Managed?

Java のメモリ管理

Java のメモリ割り当ては、ヒープと非ヒープの 2 つの主要セクションに分かれています。ヒープは、Java 仮想マシン (JVM) がクラス インスタンスと配列にメモリを割り当てるランタイム データ領域です。非ヒープには、JVM の内部処理と最適化に必要なメモリが含まれます。

ヒープ メモリ

ヒープ メモリは、さらに 3 つのプールに分割されます: Eden Space、Survivor Space、Tenured Generation ( Old Gen)。

  • Eden Space: メモリは、最初は Eden Space プールからほとんどのオブジェクトに割り当てられます。
  • Survivor Space: Eden スペースのガベージ コレクションを経て生き残ったオブジェクトは、Survivor Space に移動されます。
  • Tenured Generation: Survivor Space にしばらく存在していたオブジェクトは、Tenured Generation に移動されます。

非ヒープ メモリ

非ヒープ メモリには、永続世代とコード キャッシュという 2 つのメイン プールが含まれます。

  • 永続世代: クラスやメソッド オブジェクトなど、JVM 自体のすべてのリフレクティブ データが含まれます。
  • コード キャッシュ: ネイティブ コードのコンパイルおよび保存用のメモリが含まれます。

メモリ使用量の監視

Java 監視および管理コンソール (JConsole) は、メモリ使用量など、Java アプリケーションのさまざまな側面を監視するためのグラフィカル ユーザー インターフェイスを提供します。 JConsole は、前述のヒープ プールと非ヒープ プールのメモリ使用量を表示し、開発者が潜在的なメモリの問題を特定できるようにします。

追加リソース

  • [Java のヒープ メモリ](https: //docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/fundamentals.html#memorymodel)
  • [Java の非ヒープ メモリ](https://docs.oracle .com/javase/8/docs/technotes/guides/vm/gctuning/fundamentals.html#noheapmemory)
  • [JConsole の使用](https://docs.oracle.com/javase/8/docs/ technotes/tools/share/jconsole.html)

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

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