#Java 仮想マシンはどのようにして Java バイトコードを実行しますか?
仮想マシンの観点から見ると、Java コードを実行するには、まずコンパイルされたクラス ファイルを Java 仮想マシンにロードする必要があります。ロードされたJavaクラスはメソッド領域に格納されます。実際に仮想マシンを実行する場合、仮想マシンはメソッド領域のコードを実行します。 (推奨学習: Java コース)
実行プロセス中、Java メソッドが呼び出されるたびに、Java 仮想機会が得られます。現在のスレッドの Java メソッド スタックにスタック フレームを生成して、ローカル変数とバイトコード オペランドを格納します。このスタック フレームのサイズは事前に計算されており、Java 仮想マシンではメモリ空間にスタック フレームを継続的に分散する必要はありません。
ホットスポットでは、上記の変換プロセスには 2 つの形式があります。1 つは解釈と実行です。つまり、バイトコードを 1 つずつマシンコードに変換して実行します。 ; 2 つ目は、メソッドを実行する前にメソッドに含まれるすべてのバイトコードをマシンコードにコンパイルするジャストインタイム コンパイル (JIT) です。
前者の利点はコンパイルを待つ必要がないことですが、後者の利点は実際に高速に実行されることです。 HotSpot はデフォルトでハイブリッド モードを採用しており、解釈された実行とジャストインタイム コンパイルの利点を組み合わせています。まずバイトコードを解釈して実行し、次にメソッド単位でオンザフライで繰り返し実行されるホットスポット コードをコンパイルします。
Java 仮想マシンの効率はどの程度ですか?
ジャストインタイム コンパイルは、プログラムが 80/20 ルールに準拠している、つまりコードの 20% がコンピューティング リソースの 80% を占有しているという前提に基づいています。
大部分を占める珍しいコードについては、マシンコードへのコンパイルに時間を費やす必要はなく、解釈と実行を通じて実行しますが、一方、ほんのわずかしか占めないホットコードについては、部分的には、これをマシンコードにコンパイルして、必要な実行速度を達成できます。
理論的には、ジャストインタイムでコンパイルされた Java プログラムの実行効率は c の実行効率を超える可能性があります。これは、静的コンパイルと比較して、ジャストインタイム コンパイルではプログラムの実行時情報があり、この情報に基づいて対応する最適化を行うことができるためです。
例: 仮想メソッド呼び出しの場合、ターゲット メソッドは多数ありますが、実際の操作中に呼び出されるのはそのうちの 1 つだけです。この情報は、仮想メソッド呼び出しのオーバーヘッドを回避するために、ジャストインタイム コンパイラによって利用できます。
以上がJavaコードはどのように実行されるのかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

WebStorm Mac版
便利なJavaScript開発ツール

ドリームウィーバー CS6
ビジュアル Web 開発ツール

ホットトピック









