JVM の全体的な構造、実行プロセス、および 2 つのアーキテクチャ モデルの図解による説明。学びましたか?

JVM の全体的な構造、実行プロセス、および 2 つのアーキテクチャ モデルの図解による説明。学びましたか?

[[431325]]

JVM 全体構造

  • HotSpot VM は、市場における代表的な高性能仮想マシンの 1 つです。
  • メソッド領域とヒープ: 複数のスレッドで共有
  • 仮想マシンスタック、ローカルメソッドスタック、プログラムカウンタ:各スレッドには独自のコピーがある
  • 実行エンジン: インタープリタ、ジャストインタイムコンパイラ (バックエンドコンパイラ)、ガベージコレクタの 3 つの部分から構成されます。
  • インタプリタとジャストインタイムコンパイラが共存するアーキテクチャを使用します。
  • 現在、Java プログラムの実行パフォーマンスは変革を遂げ、C/C++ プログラムと競合できるレベルに達しています。

Javaコード実行プロセス

Java 仮想マシンで解釈できるバイトコード ファイルのみを生成できるため、理論的にはコード セットを自分で設計できます。

通訳者:応答時間を保証し、通訳と実行のスピードに責任を持つ

JITコンパイラ: コンパイル、バイトコード命令、ホットコードの実行を担当し、メソッド領域にキャッシュし、次回遭遇したときにそれらをバイナリ命令に直接変換します。

JVM アーキテクチャ モデル

Java コンパイラに入力される命令ストリームは基本的にスタックベースの命令セット アーキテクチャであり、もう 1 つの命令セット アーキテクチャはレジスタベースの命令セット アーキテクチャです。

具体的には、これら 2 つのアーキテクチャの違いは次のとおりです。

スタックアーキテクチャに基づく

  • 設計と実装が簡単で、リソースが制限されたシステムに適しています。
  • レジスタ割り当ての難しさを回避します。ゼロアドレス命令割り当てを使用します。
  • 命令ストリーム内の命令のほとんどはゼロアドレス命令であり、その実行プロセスは操作スタックに依存します。命令セットが小さくなり、コンパイラの実装が容易になります。
  • ハードウェアサポートは不要、移植性が向上し、クロスプラットフォーム実装が向上

レジスタベースのアーキテクチャ

  • 一般的なアプリケーションは、従来の PC や Android の Davlik 仮想マシンなどの x86 バイナリ命令セットです。
  • 命令セットアーキテクチャはハードウェアに完全に依存しており、移植性が低いです。
  • 優れたパフォーマンスとより効率的な実行
  • 操作を完了するために必要な命令が少なくなります。
  • ほとんどの場合、レジスタ アーキテクチャに基づく命令セットでは、1 アドレス命令、2 アドレス命令、および 3 アドレス命令が主流となるのに対し、スタック アーキテクチャに基づく命令セットでは、0 アドレス命令が主流となります。

2+3 の同じ論理演算を実行するには、次の命令を使用します。

スタックベースのコンピューティング プロセス (Java 仮想マシンを例に挙げます):

  1. iconst_2 // 定数2がスタックにプッシュされます
  2. istore_1
  3. iconst_3 // 定数3がスタックにプッシュされます
  4. istore_2
  5. 翻訳:
  6. 翻訳:
  7. iadd // スタックから定数2/3をポップし、加算を実行します
  8. istore_0 // 結果5がスタックにプッシュされる

レジスタに基づく計算プロセス

  1. mov eax,2 //eaxレジスタの値を
  2. 1add eax,3 //eaxレジスタの値に3を加算する

バイトコードの逆コンパイル

簡単なコードを書いて、バイトコードの逆コンパイル結果を見てみましょう。

  1. パブリッククラスStackStruTest {
  2. 公共 静的void main(String[] args) {
  3. 整数i = 2 + 3;
  4. }
  5. }

次に、コンパイルされたクラスファイルを見つけて、次のコマンドを使用して逆コンパイルします。

  1. javap -v(詳細) StackStruTest.class

結果のファイルは次のようになります。

  1. 公共 静的void main(java.lang.String[]);
  2. 記述子: ([Ljava/lang/String;)V
  3. フラグ: ACC_PUBLIC、ACC_STATIC
  4. コード:
  5. スタック=2、ローカル=4、args_size=1
  6. 0: アイコンst_2
  7. 1: istore_1
  8. 2: アイコンst_3
  9. 3: istore_2
  10. 4: ロード1
  11. 5: ロード2
  12. 6: 追加
  13. 7: istore_3
  14. 8:戻る 
  15. 行番号テーブル:
  16. 9行目: 0
  17. 10行目: 2
  18. 11行目: 4
  19. 12行目: 8
  20. ローカル変数テーブル:
  21. 開始長さスロット署名
  22. 0 9 0 引数 [Ljava/lang/String;
  23. 2 7 1 私
  24. 4 5 2 j 私
  25. 8 1 3 キロ 私
  26.   

要約する

クロスプラットフォーム設計のため、Java 命令はすべてスタックに基づいて設計されています。

プラットフォームによって CPU アーキテクチャが異なるため、レジスタベースで設計することはできません。

利点は、クロスプラットフォーム、小さな命令セット、および簡単なコンパイラ実装である。

欠点は、パフォーマンスが低下し、同じ機能を実現するためにより多くの命令が必要になることです。

現在、組み込みプラットフォームは Java プログラムの主流の動作プラットフォームではなくなりましたが (正確には、HotSpotVM のホスト環境は組み込みプラットフォームに限定されなくなりました)、アーキテクチャをレジスタベースのアーキテクチャに変更してみてはいかがでしょうか。

結論:それで十分だから

スタック

クロスプラットフォーム

小さな命令セット

多くの指示

実行パフォーマンスはレジスタよりも悪い

<<:  クラウドベースのビデオ監視の準備はできていますか?

>>:  Redis アプリケーション (Stars Chasing the Moon): 分散ロック

推薦する

easyvmはどうですか?ニューヨーク VPS の簡単なレビュー、TikTok/Netflix のブロック解除

easyvmはどうですか? easyvm のニューヨーク VPS はどうですか? easyvmのニュ...

onenetwork 月額 16 ドル - 1G メモリ (xen)/60G ハードディスク/10T トラフィック/12 コア CPU

oneNetworkは1997年に設立されたと言われる長い歴史を持つホスティング会社です。現在、彼ら...

新たなテクノロジートレンド: IoTからエッジコンピューティングまで

イノベーションは進歩を推進し、テクノロジーが急速に進化するにつれて、新しいトレンドが驚くべき方法で未...

holderhost-$7/Xen/2g メモリ/70g ハードディスク/1T トラフィック/2IP

Holderhost は特別プロモーション VPS を導入しており、公式の約束では、今回は 23 V...

マルチクラウド: 新しい監視キャッシュ

概要:企業はクラウド プラットフォームを採用しており、多くの場合、特定のアプリケーションを実行するた...

APPの運営とプロモーションに重要なチャンネルです! ! !

アプリが検索プラットフォームで良いランキングを獲得したい場合、アプリのダウンロード数を増やし、ブラン...

ウェブサイトの基盤と検索エンジンのアルゴリズムを相互に補完させる方法について説明します

Baidu におけるウェブサイトのランキングの変動は、多くのウェブマスターにとって頭痛の種となってい...

もう一つのテイクアウト注文プラットフォーム「フェイファン」は、商店に最高のサービスを提供することで「カーブで追い越す」ことを試みている。

「飛帆」は、キャンパスを中心としたフードデリバリー取引プラットフォームを主に運営する西安の新興企業で...

SEO: 独創性を盲目的に追求しない

「百度は独自のオリジナルコンテンツを好みます。サイトのコンテンツがさまざまな場所から単に収集され、コ...

locvps: シンガポール VPS 生涯 40% 割引、最低 27 元、2G メモリ/1 コア/40g SSD/600G トラフィック/50M 帯域幅

locvpsは現在、シンガポールVPS(シンガポールクラウドサーバー)を40%永久割引で提供していま...

オーディオとビデオについての理解を深めましょう。ファーウェイクラウドRTCは最先端の技術を統合

[51CTO.comからのオリジナル記事] 2020年の世界的なCOVID-19パンデミックにより、...

3分レビュー! 10月のクラウドコンピューティング分野の重要な動向を簡単に紹介します

今年に入ってから、クラウドライブストリーミング、クラウド教室、クラウドフィットネスなどの人気が高まり...

電子商取引の信頼性危機においてユーザーの信頼を最適化する方法

わが国の電子商取引は急速に発展し、海外の電子商取引大手の羨望の的となっているが、このような急速な成長...

SEO スタッフ: キーワードを調査する理由

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

SEO リーダーはどのようにして効率的なチームを構築すべきでしょうか?

シニア SEO として、まだシニア SEO でない場合は、シニア SEO になるための夢と準備も必要...