JVM 全体構造
Javaコード実行プロセスJava 仮想マシンで解釈できるバイトコード ファイルのみを生成できるため、理論的にはコード セットを自分で設計できます。 通訳者:応答時間を保証し、通訳と実行のスピードに責任を持つ JITコンパイラ: コンパイル、バイトコード命令、ホットコードの実行を担当し、メソッド領域にキャッシュし、次回遭遇したときにそれらをバイナリ命令に直接変換します。 JVM アーキテクチャ モデルJava コンパイラに入力される命令ストリームは基本的にスタックベースの命令セット アーキテクチャであり、もう 1 つの命令セット アーキテクチャはレジスタベースの命令セット アーキテクチャです。 具体的には、これら 2 つのアーキテクチャの違いは次のとおりです。 スタックアーキテクチャに基づく
レジスタベースのアーキテクチャ
例2+3 の同じ論理演算を実行するには、次の命令を使用します。 スタックベースのコンピューティング プロセス (Java 仮想マシンを例に挙げます):
レジスタに基づく計算プロセス
バイトコードの逆コンパイル簡単なコードを書いて、バイトコードの逆コンパイル結果を見てみましょう。
次に、コンパイルされたクラスファイルを見つけて、次のコマンドを使用して逆コンパイルします。
結果のファイルは次のようになります。
要約するクロスプラットフォーム設計のため、Java 命令はすべてスタックに基づいて設計されています。 プラットフォームによって CPU アーキテクチャが異なるため、レジスタベースで設計することはできません。 利点は、クロスプラットフォーム、小さな命令セット、および簡単なコンパイラ実装である。 欠点は、パフォーマンスが低下し、同じ機能を実現するためにより多くの命令が必要になることです。 現在、組み込みプラットフォームは Java プログラムの主流の動作プラットフォームではなくなりましたが (正確には、HotSpotVM のホスト環境は組み込みプラットフォームに限定されなくなりました)、アーキテクチャをレジスタベースのアーキテクチャに変更してみてはいかがでしょうか。 結論:それで十分だから スタック クロスプラットフォーム 小さな命令セット 多くの指示 実行パフォーマンスはレジスタよりも悪い |
>>: Redis アプリケーション (Stars Chasing the Moon): 分散ロック
2018年の杭州雲奇カンファレンスで、アリババクラウドは素晴らしいショーを披露しました。観客によって...
運営おじさんは、 Xiaomi App Storeについて知りました。2016年7月現在、Xiaom...
インターネットマーケティングはどこにでもあります。Weiboの急速な成長に伴い、Weiboマーケティ...
SEO を芸術に例えるのは誇張ではありませんが、実際には私たちはそれを歪曲し、記事を書いて外部リンク...
[[266338]]現在、企業のワークロードはオンプレミスよりもクラウドで実行する方がコスト効率が高...
12月23日、国際データコーポレーション(IDC)がこのほど発表した「中国クラウド運用サービス市場(...
[[411619]]エッジ コンピューティングは、分散コンピューティング、グリッド コンピューティン...
2011年に設立されたオランダのサーバープロバイダーであるHostcircleは、現在、米国アッシュ...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスソフト製品については、特...
[51CTO.com からのオリジナル記事] VMware は、その強力なサーバー仮想化テクノロジー...
私のように注文を受けるのが初心者にとって、注文を受けるのは簡単なことではありません。新人は、余分なお...
SEO では、タグの最適化は誰もが行う必要があり、適切に行う必要があります。インターネット上には、S...
多くの企業は、オンラインプロモーションを行う際に多くの誤解を抱いています。企業は一般的に資金力がある...
10月20日、国平氏は光年フォーラムを閉会した。国平氏自身は、その理由として3つの点を挙げた。第一に...
[[419910]] 2020年以降、クラウドコンピューティングがトレンドになりました。ますます多く...