AOT-Kompilierung
Kurz: AOT („Ahead of Time”) übersetzt ein Programm schon vor dem Start in Maschinencode, statt es zur Laufzeit zu interpretieren oder per JIT zu übersetzen.
Genauer: C, C++, Rust und Go arbeiten klassisch so. Auch Sprachen mit virtueller Maschine bieten AOT, etwa GraalVM Native Image für Java oder .NET Native AOT.
Im Detail
- Vorteile: Schneller Start, kein Aufwärmen, oft weniger Speicher, einfache Auslieferung ohne Laufzeitumgebung.
- Nachteile: Spitzenleistung kann unter einem JIT liegen, der echte Laufzeitdaten nutzt. Dynamische Funktionen wie Reflection brauchen vorab Konfiguration.
- Einsatz: Serverlose Funktionen und Container, bei denen der Kaltstart zählt, sowie Kommandozeilenwerkzeuge.
- Mischformen: Profilgeführte Optimierung (PGO) füttert den AOT-Compiler mit Messdaten eines Probelaufs. Angular und Dart nutzen AOT für schnelle Web-Apps.
- Plattformbindung: Das Ergebnis läuft nur auf der Zielarchitektur.
Siehe auch: Zwischendarstellung und Compiler-Optimierung