実行時コンパイラ

更新日:

用語解説

実行時コンパイラは、プログラムの実行中に中間コードなどを対象CPUの機械語へコンパイルする処理系で、JIT(Just-In-Time)コンパイラとも呼ばれます。実際の実行状況を使った最適化ができます。

■ 試験で押さえるポイント

  • 最初は中間コードを解釈し、呼出し回数の多いホットスポットを検出してネイティブコードへ変換・保存する適応的コンパイルが代表的です。

  • 実行時の型、分岐頻度、呼出し先などのプロファイル情報に基づき、インライン展開や不要検査除去など事前には難しい最適化を行えます。

  • コンパイル時間と生成コード用メモリが実行時に必要なため、起動直後は遅いウォームアップや一時停止が生じる場合があります。

  • 事前コンパイラは実行前に機械語を生成し、インタプリタは命令を逐次解釈します。JITは実行中にまとめて機械語化して以後再利用する点が異なります。

■ 選択肢での判断ポイント

「実行中」「中間コードから機械語」「頻繁に実行される部分を最適化」が手掛かりです。別CPU向けコードを生成するクロスコンパイラとは分類軸が違います。

例: 仮想機械がメソッドを最初はバイトコード解釈で実行し、1万回呼ばれた時点でJITコンパイルしてネイティブコードへ置き換えれば、以後の反復を高速化できます。

音声で聞く

同じ分野の用語