【エーオーティーコンパイル】
AOTコンパイル とは?
最終更新:
💡 実行より前に、コードを準備する
実行より前にコードをコンパイルしておく方式。ネイティブコードへの事前変換では、実行時のコンパイル負荷を減らせます。起動・容量・互換性などの効果は実装や用途によります。
📌 このページのポイント
AOTコンパイルって何?
JITとどちらが速い?
コンパイル時期が違うんだ。AOTは起動の負荷を減らせるけど、JITにはその実行で得た情報を使って最適化する利点がある。起動時間と処理全体の性能を分けて測ろう。
Androidは全部AOT?
ARTではAOT・JIT・解釈実行を組み合わせる。実行の記録であるプロファイルを使って、後から事前コンパイルする部分を選ぶこともある。AOTなら動的な最適化が一切ない、と決めつけないでね。
.NETではどう使うの?
採用する前に何を確認する?
起動やメモリだけでなく、ビルド時間・配布サイズ・対応環境と機能を確認しよう。.NET Native AOTでは動的なアセンブリ読み込みや実行時コード生成に制限があり、依存先の警告も点検するんだ。
もっと詳しく知りたい人へ
AOTならアプリのサイズも必ず小さい?
比較対象によります。.NET Native AOTでは必要なランタイムのライブラリも含めます。未使用部分の削除で小さくなる面もありますが、必要なコードや型の特殊化などで容量が増える面もあるため、実際の成果物を比較します。
📖 おまけ:英語の意味
「Ahead-Of-Time Compilation」 = 事前コンパイル
💬 Ahead of timeは「前もって」。実行前のコンパイルを指し、全プログラムを一度に変換することや高速化を保証する言葉ではありません。