JVM 全体構造
Javaコード実行プロセスJava 仮想マシンで解釈できるバイトコード ファイルのみを生成できるため、理論的にはコード セットを自分で設計できます。 通訳者:応答時間を保証し、通訳と実行のスピードに責任を持つ JITコンパイラ: コンパイル、バイトコード命令、ホットコードの実行を担当し、メソッド領域にキャッシュし、次回遭遇したときにそれらをバイナリ命令に直接変換します。 JVM アーキテクチャ モデルJava コンパイラに入力される命令ストリームは基本的にスタックベースの命令セット アーキテクチャであり、もう 1 つの命令セット アーキテクチャはレジスタベースの命令セット アーキテクチャです。 具体的には、これら 2 つのアーキテクチャの違いは次のとおりです。 スタックアーキテクチャに基づく
レジスタベースのアーキテクチャ
例2+3 の同じ論理演算を実行するには、次の命令を使用します。 スタックベースのコンピューティング プロセス (Java 仮想マシンを例に挙げます):
レジスタに基づく計算プロセス
バイトコードの逆コンパイル簡単なコードを書いて、バイトコードの逆コンパイル結果を見てみましょう。
次に、コンパイルされたクラスファイルを見つけて、次のコマンドを使用して逆コンパイルします。
結果のファイルは次のようになります。
要約するクロスプラットフォーム設計のため、Java 命令はすべてスタックに基づいて設計されています。 プラットフォームによって CPU アーキテクチャが異なるため、レジスタベースで設計することはできません。 利点は、クロスプラットフォーム、小さな命令セット、および簡単なコンパイラ実装である。 欠点は、パフォーマンスが低下し、同じ機能を実現するためにより多くの命令が必要になることです。 現在、組み込みプラットフォームは Java プログラムの主流の動作プラットフォームではなくなりましたが (正確には、HotSpotVM のホスト環境は組み込みプラットフォームに限定されなくなりました)、アーキテクチャをレジスタベースのアーキテクチャに変更してみてはいかがでしょうか。 結論:それで十分だから スタック クロスプラットフォーム 小さな命令セット 多くの指示 実行パフォーマンスはレジスタよりも悪い |
>>: Redis アプリケーション (Stars Chasing the Moon): 分散ロック
1. SNS軍の地下産業チェーンが、タオバオの偽注文は単なる空想であることを暴露最近、SNS軍はさま...
毎年恒例のダブルイレブンが到来し、Gouyunも例外ではありません。また、毎年恒例の最低価格イベント...
[51CTO.com クイック翻訳] 多くのベンダーは、クラウド エントリ チャネル、主要な Saa...
ゲームの支払いが悪いのはオプティマイザーとは何の関係もないのでしょうか?最適化担当者はバックエンドの...
2 週間前、Intel は Tukwila クアッドコア Itanium プロセッサの発売を再び 2...
10月22日から24日まで、国家次世代インターネットエンジニアリングセンターが主催し、南京江北新区な...
Linode ニューアーク データセンターはどうですか? Linode ニューアーク データセンター...
クラウドホスティングは現在、IT 業界でホットなキーワードとなっており、IDC 市場を独占しているサ...
Web ページにタイトルを追加するのは非常に簡単なことのように思えますが、Web サイトの約 70%...
インターネット マーケティングを成功させる戦略の 1 つは、「検索エンジン最適化」(SEO) を適切...
最近、かつて瑞創で働いていた数人がIT Timesの記者に明らかにしたところによると、2011年3月...
過去 1 年間の SEO キャリアを振り返ると、多くの感慨を感じます。今日は、SEO について私が学...
Maxthon Hosting (Maxthon VPS、Maxthon Cloud、Aoyoyun...
今朝、中国サイバースペース管理局は記者会見を開き、法律に従って最近閉鎖されたいくつかのウェブサイト、...
古いインフラストラクチャと新しいインフラストラクチャが時間と空間を移動し、新旧の相互作用を生み出しま...