事前コンパイラ (Ahead-Of-Timeコンパイラ、AOTコンパイラ)とは、アプリケーション実行前に事前にソースコードや中間言語を機械語へ変換(コンパイル)するコンパイラのこと。対義語は実行時コンパイラ(Just-In-Timeコンパイラ、JITコンパイラ)。
JITコンパイラはアプリケーション実行中に中間言語を機械語にコンパイルするため、アプリケーションの性能を低下させることがある。AOTコンパイラは実行時コンパイルの必要性を無くし、ソースコードから中間言語コードを生成した後に、ネイティブの機械語コードを生成させる方式で性能低下を回避できる。JITコンパイラと区別するためAOTコンパイラという言葉が使われるが、C言語やC++など、AOTコンパイラが当たり前の言語では、わざわざAOTをつけずに単にコンパイラと呼ばれることがほとんどである。
C#やVisual Basic .NETを初めとする.NETはJIT方式のみであったが、2022年 .NET7でAOTコンパイルがサポートされた[1]。
関連項目
脚注
- ^ “Native AOT Deployment”. 2023年1月6日閲覧。
外部リンク
- .NET
- Speed: NGen Revs Up Your Performance with Powerful New Features -- MSDN Magazine, April 2005
- Mono AOT
- Java
- Excelsior JET -- Java SE 6 Implementation with AOT compiler
- GNU Compiler for Java
- Aonix PERC Ultra
- Real-time Java, Part 2: Comparing compilation techniques -- IBM developerWorks, April 2007
- Improving Swing Performance: JIT vs AOT Compilation -- LinuxWorld Magazine, November 2004
- manta