バイトコード検証の分割
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/14 21:52 UTC 版)
「Javaの性能」の記事における「バイトコード検証の分割」の解説
クラスの実行に先立ち、オラクルのJVMはバイトコードの検証を行う。バイトコードのロードと検証は特定のクラスがロードされ実行する準備ができた場合のみ行われ、プログラムの開始時点で行われるわけではない。しかし、Javaのクラスライブラリも正規のJavaクラスであり、使用時にロードされるため、Javaプログラムの起動時間は例えばC++のプログラムより長くなることが多い。 分割検証と呼ばれる技術がJavaプラットフォームのJ2MEで導入され、Java version 6からJava仮想マシンで利用されるようになった。これはバイトコードの検証を二つのフェーズに分割する。 設計時 - ソースコードからバイトコードにクラスをコンパイルする際 実行時 - クラスをロードする際 こうした手法は、Javaコンパイラがクラスのコードの流れを解析し、コンパイルされたメソッドのバイトコードにクラスのフロー情報の概要を注釈(アノテート)することで動作する。実行時の検証を劇的に単純化するわけではないが、若干の処理を省略することができる。
※この「バイトコード検証の分割」の解説は、「Javaの性能」の解説の一部です。
「バイトコード検証の分割」を含む「Javaの性能」の記事については、「Javaの性能」の概要を参照ください。
- バイトコード検証の分割のページへのリンク