[解決済み】javaのメモリプールはどのように分割されるのですか?
質問
現在、jconsoleでJavaアプリケーションを監視しています。メモリタブで、次のいずれかを選択できます。
Heap Memory Usage
Non-Heap Memory Usage
Memory Pool “Eden Space”
Memory Pool “Survivor Space”
Memory Pool “Tenured Gen”
Memory Pool “Code Cache”
Memory Pool “Perm Gen”
この2つの違いは何ですか?
解決方法は?
ヒープメモリ
ヒープメモリは、Java VMがすべてのクラスインスタンスと配列のためのメモリを割り当てるランタイムデータ領域である。ヒープメモリは、固定サイズまたは可変サイズである。ガベージコレクタは、オブジェクトのためにヒープメモリを回収する自動メモリ管理システムです。
-
エデンスペース : ほとんどのオブジェクトで、最初にメモリが割り当てられるプール。
-
サバイバースペース : エデン空間のガベージコレクションを生き抜いたオブジェクトを含むプール。
-
テニュア世代 または オールドジェン : 生存者空間内に以前から存在するオブジェクトを含むプール。
ノンヒープメモリ
ノンヒープメモリには、すべてのスレッドで共有されるメソッド領域と、Java VMの内部処理または最適化に必要なメモリが含まれます。これは、ランタイム定数プール、フィールドとメソッドデータ、メソッドとコンストラクタのコードのようなクラスごとの構造を格納します。メソッド領域は論理的にはヒープの一部であるが,実装によっては,Java VMはガベージコレクションやコンパクト化を行わないこともある。ヒープメモリと同様に、メソッド領域は固定サイズまたは可変サイズである可能性があります。メソッド領域のメモリは、連続である必要はありません。
-
永久保存版 : クラスやメソッドオブジェクトなど、仮想マシン自体のすべての反射データを含むプール。クラスデータの共有を使用するJava VMでは、この世代は読み取り専用と読み取り/書き込みの領域に分けられる。
-
コードキャッシュ : HotSpotのJava VMにはコードキャッシュも含まれており、ネイティブコードのコンパイルと保存に使用されるメモリが含まれています。
関連
-
[解決済み] 1行目2列目でBEGIN_ARRAYを期待したが、BEGIN_OBJECTだった。
-
[解決済み] 最も近い整数への切り捨て - 私は不正をしているのでしょうか、それともこれは十分すぎるほど適切なのでしょうか?
-
[解決済み] Eclipseでクラスとそれに対応するファイルの名前を変更する方法は?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Oracle DB : java.sql.SQLException: 閉じた接続
-
[解決済み] プロトコルハンドラの初期化に失敗しました。
-
[解決済み] Androidのコールバックとは何ですか?重複
-
[解決済み] Javaでのスキャナが動作しない
-
[解決済み] javascriptでExpression言語を使うには?
-
[解決済み] javax.naming.NameNotFoundException
-
[解決済み] JAVA_OPTIONS、JAVA_TOOL_OPTIONS、JAVA_OPTSの違いについて
-
[解決済み] 午前0時からの時間を秒単位で取得する方法
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] 文字列が一意な文字であるかどうかを判定する