実行時にコンパイルを行う動的コンパイルの手法の1つで、実行しようとするコードが必要になったそのとき(Just In Time)に、対象の比較的小さな範囲内に対してコンパイルを行う方式のことです。
JITコンパイルの結果として、メモリに機械語のオブジェクトコードが生成され、これが実行されます。コンパイル結果がメモリに残してあれば、次回同じ箇所を実行するときには再度のコンパイルを省けるため、高速に実行できます。
当然ながらコンパイルには時間が掛かりますから、1度にコンパイルする範囲を1つの関数やクラスのコードだけといったような小さめの範囲だけに抑えておきます。同様の理由から、多くの時間がかかる高度な最適化は難しいですが、実行時までコンパイルを先送りしているため、コンパイル時に実行環境の性能をチェックできる利点があり、使用可能なメモリの量や、CPU が持つ機能などを踏まえた最適化をかけられる可能性があります。
JITコンパイルとの対比で、実行前にあらかじめすべてのコンパイルを済ませておく方式を AOTコンパイル(事前コンパイル)と呼ぶことがあります(AOT は Ahead-Of-Time の略)。
なお、JITコンパイルを行うコンパイラを、JITコンパイラと呼びます。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |