Ця стаття має кілька недоліків. Будь ласка, допоможіть удосконалити її або обговоріть ці проблеми на .
|
Компілятор перед виконанням (англ. ahead-of-time compilation (AOT)) — це вид транслятора, який використовує метод компіляції перед виконанням. Використовується як для компіляції високорівневних мов програмування, так і для компіляції так званих «проміжкових» мов.
В багатьох реалізаціях мов програмування використовується компіляція під час виконання, яка дозволяє компілювати проміжковий код напряму в бінарний під час його виконання, що дозволяє значно збільшити швидкість виконання, але ця стратегія потребує виділення додаткової пам'яті.
Стратегія AOT не потребує виділення додаткової пам'яті, а також вона проходить з мінімальним навантаженням на систему. Процес компіляції повністю виконується перед виконанням програми.
Компіляція перед виконанням дозволяє компілювати класи в машинний код для подальшого виконання однієї і тієї самої програми. Компілятор АОТ працює з платформою обміну даними класу.
Компілятор такого виду динамічно генерує машинний код під час виконання застосунку і кешує будь-який згенерований код АОТ в загальному кеші даних. Наступні машини, що виконують цей метод, можуть завантажувати і використовувати код АОТ із загального кешу даних без зниження продуктивності, що спостерігається при використанні скомпільованого машинного коду.
Компілятор АОТ увімкнений за замовчуванням, але активний лише тоді, коли увімкнені загальні класи. За замовчуванням, загальні класи вимкнені, так що ніякої активності АОТ не відбувається. Коли компілятор АОТ активний, компілятор обирає методи для компіляції АОТ з основною ціллю покращення часу запуску.
Переваги
- Швидке завантаження в браузері. Витрачається менше часу за рахунок того, що застосунок компілюється до завантаження в браузер та кінцеві файли мають менший розмір.
- Виявлення помилок під час збірки. Мається можливість виправити всі помилки до запуску застосунку в режимі експлуатації.
- Підвищена безпека.
Стадії
Компіляцію перед виконання можна розділити на три стадії:
- Аналіз.
- Генерація коду.
- Валідація
Приклади
- Ngen
- Mono AOT
- Excelsior JET
- ART
- asm.js
- GraalVM
Джерела
- Trustworthy Compilers, Vladimir O. Safonov, Chapter 8.6 «AOT Compilation» (англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya maye kilka nedolikiv Bud laska dopomozhit udoskonaliti yiyi abo obgovorit ci problemi na Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno berezen 2021 Kompilyator pered vikonannyam angl ahead of time compilation AOT ce vid translyatora yakij vikoristovuye metod kompilyaciyi pered vikonannyam Vikoristovuyetsya yak dlya kompilyaciyi visokorivnevnih mov programuvannya tak i dlya kompilyaciyi tak zvanih promizhkovih mov V bagatoh realizaciyah mov programuvannya vikoristovuyetsya kompilyaciya pid chas vikonannya yaka dozvolyaye kompilyuvati promizhkovij kod napryamu v binarnij pid chas jogo vikonannya sho dozvolyaye znachno zbilshiti shvidkist vikonannya ale cya strategiya potrebuye vidilennya dodatkovoyi pam yati Strategiya AOT ne potrebuye vidilennya dodatkovoyi pam yati a takozh vona prohodit z minimalnim navantazhennyam na sistemu Proces kompilyaciyi povnistyu vikonuyetsya pered vikonannyam programi Kompilyaciya pered vikonannyam dozvolyaye kompilyuvati klasi v mashinnij kod dlya podalshogo vikonannya odniyeyi i tiyeyi samoyi programi Kompilyator AOT pracyuye z platformoyu obminu danimi klasu Kompilyator takogo vidu dinamichno generuye mashinnij kod pid chas vikonannya zastosunku i keshuye bud yakij zgenerovanij kod AOT v zagalnomu keshi danih Nastupni mashini sho vikonuyut cej metod mozhut zavantazhuvati i vikoristovuvati kod AOT iz zagalnogo keshu danih bez znizhennya produktivnosti sho sposterigayetsya pri vikoristanni skompilovanogo mashinnogo kodu Kompilyator AOT uvimknenij za zamovchuvannyam ale aktivnij lishe todi koli uvimkneni zagalni klasi Za zamovchuvannyam zagalni klasi vimkneni tak sho niyakoyi aktivnosti AOT ne vidbuvayetsya Koli kompilyator AOT aktivnij kompilyator obiraye metodi dlya kompilyaciyi AOT z osnovnoyu cillyu pokrashennya chasu zapusku PerevagiShvidke zavantazhennya v brauzeri Vitrachayetsya menshe chasu za rahunok togo sho zastosunok kompilyuyetsya do zavantazhennya v brauzer ta kincevi fajli mayut menshij rozmir Viyavlennya pomilok pid chas zbirki Mayetsya mozhlivist vipraviti vsi pomilki do zapusku zastosunku v rezhimi ekspluataciyi Pidvishena bezpeka StadiyiKompilyaciyu pered vikonannya mozhna rozdiliti na tri stadiyi Analiz Generaciya kodu ValidaciyaPrikladiNgen Mono AOT Excelsior JET ART asm js GraalVMDzherelaTrustworthy Compilers Vladimir O Safonov Chapter 8 6 AOT Compilation angl