EMZETT.
Увійти

AOT-компіляція

Коротко: AOT («Ahead of Time») перекладає програму на машинний код ще до запуску, замість того щоб інтерпретувати її під час виконання чи перекладати JIT.

Докладніше: C, C++, Rust і Go класично працюють так. Мови з віртуальною машиною теж пропонують AOT, наприклад GraalVM Native Image для Java чи .NET Native AOT.

Подробиці

  • Переваги: Швидкий запуск, немає прогріву, часто менше пам’яті, проста поставка без середовища виконання.
  • Недоліки: Пікова продуктивність може поступатися JIT, що використовує реальні дані часу виконання. Динамічні можливості на кшталт рефлексії потребують налаштування наперед.
  • Застосування: Безсерверні функції та контейнери, де важливий холодний старт, а також утиліти командного рядка.
  • Змішані форми: Оптимізація за профілем (PGO) подає AOT-компілятору вимірювання пробного запуску. Angular і Dart використовують AOT для швидких вебзастосунків.
  • Прив’язка до платформи: Результат працює лише на цільовій архітектурі.

Див. також: проміжне подання та оптимізація компілятора