JVM 全体構造
Javaコード実行プロセスJava 仮想マシンで解釈できるバイトコード ファイルのみを生成できるため、理論的にはコード セットを自分で設計できます。 通訳者:応答時間を保証し、通訳と実行のスピードに責任を持つ JITコンパイラ: コンパイル、バイトコード命令、ホットコードの実行を担当し、メソッド領域にキャッシュし、次回遭遇したときにそれらをバイナリ命令に直接変換します。 JVM アーキテクチャ モデルJava コンパイラに入力される命令ストリームは基本的にスタックベースの命令セット アーキテクチャであり、もう 1 つの命令セット アーキテクチャはレジスタベースの命令セット アーキテクチャです。 具体的には、これら 2 つのアーキテクチャの違いは次のとおりです。 スタックアーキテクチャに基づく
レジスタベースのアーキテクチャ
例2+3 の同じ論理演算を実行するには、次の命令を使用します。 スタックベースのコンピューティング プロセス (Java 仮想マシンを例に挙げます):
レジスタに基づく計算プロセス
バイトコードの逆コンパイル簡単なコードを書いて、バイトコードの逆コンパイル結果を見てみましょう。
次に、コンパイルされたクラスファイルを見つけて、次のコマンドを使用して逆コンパイルします。
結果のファイルは次のようになります。
要約するクロスプラットフォーム設計のため、Java 命令はすべてスタックに基づいて設計されています。 プラットフォームによって CPU アーキテクチャが異なるため、レジスタベースで設計することはできません。 利点は、クロスプラットフォーム、小さな命令セット、および簡単なコンパイラ実装である。 欠点は、パフォーマンスが低下し、同じ機能を実現するためにより多くの命令が必要になることです。 現在、組み込みプラットフォームは Java プログラムの主流の動作プラットフォームではなくなりましたが (正確には、HotSpotVM のホスト環境は組み込みプラットフォームに限定されなくなりました)、アーキテクチャをレジスタベースのアーキテクチャに変更してみてはいかがでしょうか。 結論:それで十分だから スタック クロスプラットフォーム 小さな命令セット 多くの指示 実行パフォーマンスはレジスタよりも悪い |
>>: Redis アプリケーション (Stars Chasing the Moon): 分散ロック
ウェブサイトの最適化は、検索エンジンのアルゴリズムの進歩により、ますます洗練されてきました。多くのウ...
中国で事業を展開する企業は、クラウドの導入を通じて、クラウドネイティブのイノベーションの推進と既存の...
私は以前、自分の洞察について 2 つの記事を書きました。要約すると、Wang Tong 氏とその妻が...
1. 背景近年、パブリッククラウドの発展に伴い、パブリッククラウドのユーザーエクスペリエンスも、本来...
昨年11月、当社は「合肥レンタカー」をメインキーワードとするサイトを引き継ぎました。このサイトを分析...
今日は前回の記事「彼女にクラウドコンピューティングとは何かを説明するには?」でクラウドコンピューティ...
我が国では10年ごとに国勢調査が行われており、今年もまた新たな国勢調査が始まろうとしています。これは...
少し前に、ウェブマスターフォーラムで、ウェブマスターがどのようにウェブサイトを運営し、コアユーザーを...
時代の発展とともに、ますます多くの企業が、電子商取引がマーケティングに与える大きな影響を徐々に認識し...
ほとんどのウェブマスターにとって、外部リンクは非常に重要であると考えられています。アルゴリズムは何度...
Tencent の軽量アプリケーション サーバー (Lighthouse) が正式にリリースされ、一...
「オンライン家電企業は数十億元の補助金を前払いする必要があり、依然として大規模な利益譲歩や販売促進策...
クラウド コンピューティングの運命はほぼ決まっています。どこでも利用できるわけではなく、多くの企業は...
A5 Webmaster Network (www.admin5.com) は 12 月 24 日、...
最近、グローバル検索エンジン戦略会議が厦門で開催されました。専門家は、国内の検索エンジン市場は依然と...