JVM 全体構造
Javaコード実行プロセスJava 仮想マシンで解釈できるバイトコード ファイルのみを生成できるため、理論的にはコード セットを自分で設計できます。 通訳者:応答時間を保証し、通訳と実行のスピードに責任を持つ JITコンパイラ: コンパイル、バイトコード命令、ホットコードの実行を担当し、メソッド領域にキャッシュし、次回遭遇したときにそれらをバイナリ命令に直接変換します。 JVM アーキテクチャ モデルJava コンパイラに入力される命令ストリームは基本的にスタックベースの命令セット アーキテクチャであり、もう 1 つの命令セット アーキテクチャはレジスタベースの命令セット アーキテクチャです。 具体的には、これら 2 つのアーキテクチャの違いは次のとおりです。 スタックアーキテクチャに基づく
レジスタベースのアーキテクチャ
例2+3 の同じ論理演算を実行するには、次の命令を使用します。 スタックベースのコンピューティング プロセス (Java 仮想マシンを例に挙げます):
レジスタに基づく計算プロセス
バイトコードの逆コンパイル簡単なコードを書いて、バイトコードの逆コンパイル結果を見てみましょう。
次に、コンパイルされたクラスファイルを見つけて、次のコマンドを使用して逆コンパイルします。
結果のファイルは次のようになります。
要約するクロスプラットフォーム設計のため、Java 命令はすべてスタックに基づいて設計されています。 プラットフォームによって CPU アーキテクチャが異なるため、レジスタベースで設計することはできません。 利点は、クロスプラットフォーム、小さな命令セット、および簡単なコンパイラ実装である。 欠点は、パフォーマンスが低下し、同じ機能を実現するためにより多くの命令が必要になることです。 現在、組み込みプラットフォームは Java プログラムの主流の動作プラットフォームではなくなりましたが (正確には、HotSpotVM のホスト環境は組み込みプラットフォームに限定されなくなりました)、アーキテクチャをレジスタベースのアーキテクチャに変更してみてはいかがでしょうか。 結論:それで十分だから スタック クロスプラットフォーム 小さな命令セット 多くの指示 実行パフォーマンスはレジスタよりも悪い |
>>: Redis アプリケーション (Stars Chasing the Moon): 分散ロック
9月17日、香港エネルギー投資有限公司(以下、「香港エネルギー」)とテンセントクラウドは、深センのゼ...
ウェブサイトの最適化で最もタブーなことは、サイトを検索エンジンに K アウトさせることです。ここでの...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス最近、ウェブサイトの運営...
IoT のシナリオでは、大量の時系列データ (時系列データと呼ばれる) が毎瞬生成されます。このデー...
A5 に投稿するのは今回が初めてです。私はまだ新人で文章が下手なのは承知していますが、私が記録したの...
山東省のウェブサイト最適化では、SEO 記事タグを設定する方法について説明します。多くの場合、SEO...
80host.com は現在、フランスの大手ブランド OVH データセンターの VPS を 8 月 ...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますネットワー...
ウェブサイトのプロモーションの目的は、できるだけ多くの人にウェブサイトを知ってもらい、訪問してもらう...
colossuscloud は比較的新しいブランドで、設立されてからまだ 1 年しか経っていないため...
前回の記事では主に私のデータの一部を共有しました「過去2年間で60万を稼いだ方法を共有(詳細データ付...
1. Xiaomiが販売モデルを変更、Redmi Noteは販売終了Redmi Noteは昨日QQ ...
Burstnet は、エンタープライズ レベルのクラウド VPS に参加したことを知らせるメールを送...
デジタルトランスフォーメーションが企業の主要テーマとなっている今日、エコシステム構築は特に重要になっ...
[[429757]]エッジコンピューティングと5GはCOVID-19後の経済成長を牽引するでしょうか...