JVM メモリ領域構造: 1 つのアカウント、2 つのスタック、1 つのパイル、1 つの領域

JVM メモリ領域構造: 1 つのアカウント、2 つのスタック、1 つのパイル、1 つの領域

[[320318]]

1 プログラムカウンタ

  • 小さなメモリスペース。
  • 現在のスレッドによって実行されたバイトコードの行番号を示すインジケーター。

2 仮想マシンスタック

これは、Java メソッド実行のスレッド メモリ モデルについて説明します。各メソッドが実行されると、Java 仮想マシンは同期的にスタック (StackFrame) を作成し、ローカル変数テーブル、オペランド スタック、動的接続、メソッド終了などの情報を格納します。各メソッドが呼び出されてから実行されるまでのプロセスは、スタック フレームが仮想マシン スタックにプッシュされてからスタックからポップされるまでのプロセスに対応します。

ローカル変数テーブル(ストレージ)

  • 基本的なデータ型
  • オブジェクト参照
  • returnAddress型(バイトコード命令のアドレスを指す)

異常な

StackOverflowError: スレッドによって要求されたスタックの深さが、仮想マシンで許可されている深さを超えています

OutOfMemoryError: スタックを拡張するときに十分なメモリを取得できません

3 ネイティブメソッドスタック

仮想マシンで使用されるネイティブ メソッド サービス。

4 Javaヒープメモリ回復の観点

新世代、旧世代、永久世代、エデン空間、サバイバー空間から、サバイバー空間へ。

メモリ割り当ての観点

すべてのスレッドで共有される Java ヒープは、複数のスレッド専用の割り当てバッファ (スレッド ローカル割り当てバッファ、TLAB) に分割できます。

異常な

OutOfMemoryError: インスタンスの割り当てを完了するためのメモリがないため、ヒープを拡張できなくなりました。

5 方法領域

  • すべてのスレッドで共有されるメモリ領域
  • 仮想マシンによってロードされたジャストインタイムコンパイラによってコンパイルされた型情報、定数、静的変数、コードキャッシュなどのデータを格納するために使用されます。
  • JDK8は永続的な世代を放棄し、それに応じてMetaSpaceを使用する。

異常な

OutOfMemoryError: 新しいメモリ割り当て要件を満たすことができない場合

6ランタイム定数プール

  • 方法領域の一部
  • コンパイル中に生成されたさまざまなリテラルとシンボル参照を格納するために使用されます。この部分のコンテンツは、クラスがロードされた後にメソッド領域の実行時定数プールに保存されます。

異常な

OutOfMemoryError: 定数プールがメモリに適用できなくなったとき

7 直接記憶

VMランタイムデータ領域の一部ではない

ネイティブ ダイレクト メモリの割り当ては、Java ヒープ サイズによって制限されません。

要約:

JVM メモリ領域構造には、プログラム カウンター、仮想マシン スタック、ネイティブ メソッド スタック、Java ヒープ、メソッド領域が含まれます。 1 つの計画、2 つのスタック、1 つの山、1 つの領域と単純に覚えることができ、覚えやすいです。

メソッド領域には、ランタイム定数プールと直接メモリ (NIO でより一般的) が含まれます。

よりしっかりと把握するためには、各領域の主な機能を理解する必要があります。

<<:  エッジコンピューティング市場は、モノのインターネット時代において大きな可能性を秘めている

>>:  クラウド コンピューティングはビジネスにどのようなメリットをもたらしますか?

推薦する

IoTを行う際には「エッジコンピューティング」を理解する必要があります。エッジコンピューティングのコツを5分で学ぶ

街角の中年女性もブロックチェーンという言葉を口にし、人気の新語となっている。しかし、エッジコンピュー...

クラウドネイティブアーキテクチャはどのように設計すればよいでしょうか?

[[409977]] ACNAのコンセプトアリババは、さまざまな業界の多数の法人顧客にアリババクラウ...

仮想化について: 仮想化の概要

上記では、クラウド コンピューティングについて比較的包括的に紹介しました。さて、鉄は熱いうちに、クラ...

#11.11# akkocloud: 生涯 20% オフ、3 億ドイツ CN2 GIA、ドイツネイティブ IP、Netflix のロック解除

akkocloud は比較的新しい中国の商人です。主な事業は、国内独立サーバー、国内 NAT ポート...

ウェブサイトのページナビゲーションの最適化: タイトルの重複と重みの分散を解決する

Alvin's Seo Blog のページング最適化に関する記事を注意深く読んだことがあるな...

#高性能 VPS# racknerd: 年間 69 ドル、KVM、2.5G (DDR4)/2 コア (Ryzen 9 3900X)/40gNVMe/6T トラフィック

8月末、racknerdはLinux+AMD+NVMe SSDシリーズの高性能VPSにさらに2つのプ...

スタートアップブランドはどのようにマーケティングプロモーションを実施できるのでしょうか?

この記事は、マーケティングプロモーション理論と実際の市場経験を組み合わせ、全文は8,000語を超えて...

マルチクラウド環境をより良く管理する方法

今日では、単一の Infrastructure as a Service (IaaS) クラウド コ...

Bilibiliでの商品のライブストリーミングは誤報ですか?

「愛のために発電する」か「トラフィックを収益化する」か、 B局はライブストリーミング販売の選択に迷う...

buyvmはオンラインで利用可能で、250GのストレージVPSが月額7ドルです。

buyvm がまた入荷しました。ラスベガスに引っ越してから、コンピュータールームの停電などのトラブル...

Coremail Lunke メールボックス クライアントは、安全な共同オフィス ソリューションを作成します。

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますAI、ビッ...

認識された! Huawei Cloud GaussDBはCAICTの信頼できるクラウドサービス評価に合格した最初の企業です

先日、中国情報通信研究院主催の「2020年クラウドネイティブ産業カンファレンス」が北京で盛大に開催さ...

分散ファイルシステムを設計する場合、どのような点を考慮する必要がありますか?

1. 概要分散ファイルシステムは分散分野における基本的なアプリケーションであり、最も有名なものは間違...

ハイブリッド クラウド セキュリティの基礎: 知っておくべき 4 つのこと

他の大規模な IT 変更と同様に、ハイブリッド クラウド モデルを導入するには、企業がセキュリティ対...