JVM 全体構造
Javaコード実行プロセスJava 仮想マシンで解釈できるバイトコード ファイルのみを生成できるため、理論的にはコード セットを自分で設計できます。 通訳者:応答時間を保証し、通訳と実行のスピードに責任を持つ JITコンパイラ: コンパイル、バイトコード命令、ホットコードの実行を担当し、メソッド領域にキャッシュし、次回遭遇したときにそれらをバイナリ命令に直接変換します。 JVM アーキテクチャ モデルJava コンパイラに入力される命令ストリームは基本的にスタックベースの命令セット アーキテクチャであり、もう 1 つの命令セット アーキテクチャはレジスタベースの命令セット アーキテクチャです。 具体的には、これら 2 つのアーキテクチャの違いは次のとおりです。 スタックアーキテクチャに基づく
レジスタベースのアーキテクチャ
例2+3 の同じ論理演算を実行するには、次の命令を使用します。 スタックベースのコンピューティング プロセス (Java 仮想マシンを例に挙げます):
レジスタに基づく計算プロセス
バイトコードの逆コンパイル簡単なコードを書いて、バイトコードの逆コンパイル結果を見てみましょう。
次に、コンパイルされたクラスファイルを見つけて、次のコマンドを使用して逆コンパイルします。
結果のファイルは次のようになります。
要約するクロスプラットフォーム設計のため、Java 命令はすべてスタックに基づいて設計されています。 プラットフォームによって CPU アーキテクチャが異なるため、レジスタベースで設計することはできません。 利点は、クロスプラットフォーム、小さな命令セット、および簡単なコンパイラ実装である。 欠点は、パフォーマンスが低下し、同じ機能を実現するためにより多くの命令が必要になることです。 現在、組み込みプラットフォームは Java プログラムの主流の動作プラットフォームではなくなりましたが (正確には、HotSpotVM のホスト環境は組み込みプラットフォームに限定されなくなりました)、アーキテクチャをレジスタベースのアーキテクチャに変更してみてはいかがでしょうか。 結論:それで十分だから スタック クロスプラットフォーム 小さな命令セット 多くの指示 実行パフォーマンスはレジスタよりも悪い |
>>: Redis アプリケーション (Stars Chasing the Moon): 分散ロック
easyvmはどうですか? easyvm のニューヨーク VPS はどうですか? easyvmのニュ...
oneNetworkは1997年に設立されたと言われる長い歴史を持つホスティング会社です。現在、彼ら...
イノベーションは進歩を推進し、テクノロジーが急速に進化するにつれて、新しいトレンドが驚くべき方法で未...
Holderhost は特別プロモーション VPS を導入しており、公式の約束では、今回は 23 V...
概要:企業はクラウド プラットフォームを採用しており、多くの場合、特定のアプリケーションを実行するた...
アプリが検索プラットフォームで良いランキングを獲得したい場合、アプリのダウンロード数を増やし、ブラン...
Baidu におけるウェブサイトのランキングの変動は、多くのウェブマスターにとって頭痛の種となってい...
「飛帆」は、キャンパスを中心としたフードデリバリー取引プラットフォームを主に運営する西安の新興企業で...
「百度は独自のオリジナルコンテンツを好みます。サイトのコンテンツがさまざまな場所から単に収集され、コ...
locvpsは現在、シンガポールVPS(シンガポールクラウドサーバー)を40%永久割引で提供していま...
[51CTO.comからのオリジナル記事] 2020年の世界的なCOVID-19パンデミックにより、...
今年に入ってから、クラウドライブストリーミング、クラウド教室、クラウドフィットネスなどの人気が高まり...
わが国の電子商取引は急速に発展し、海外の電子商取引大手の羨望の的となっているが、このような急速な成長...
2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますウェブ最適...
シニア SEO として、まだシニア SEO でない場合は、シニア SEO になるための夢と準備も必要...