Middle
AOT-kompilyasiya nədir?
sobes.tech Süni İntellekt
AI-dan cavab
AOT-kompilyasiya (İlkin-Əvvəlki Vaxt Kompilyasiyası) — proqramın mənbə kodunun və ya bayt-kodunun tətbiqin işə salınmasından əvvəl maşın koduna çevrilməsi prosesidir.
Əsas xüsusiyyətlər:
- İşə başlamadan əvvəl yerinə yetirilir: Kompilyasiya bir dəfə yerinə yetirilir, JIT (Just-In-Time) kompilyasiyasından fərqli olaraq, bu işə salınma zamanı baş verir.
- İcra edilə bilən fayl yaradılması: Nəticə, hədəf arxitektura və əməliyyat sisteminə xas olan icra edilə bilən fayldır.
- İşə salınma zamanı kompilyasiya mərhələsinin olmaması: Bu, iş zamanı kompilyasiya ilə əlaqəli əlavə xərcləri aradan qaldırır.
Üstünlüklər:
- Daha sürətli işə başlamaz vaxtı: Proqram dərhal işləməyə hazırdır, JIT kompilyasiyasının gecikməsiz.
- Optimizasiya: Kompilyator bütün proqram əsasında daha aqressiv optimizasiyalar edə bilər, yalnız müəyyən hissələrdə deyil.
- Əvvəlcədən proqnozlaşdırılan performans: JIT mərhələsinin olmaması, "isti" vəziyyətin qarşısını alır və daha stabilliklə cavab vaxtını təmin edir.
- İş zamanı resurs tələblərinin azaldılması: JIT kompilyatorunu yaddaşda saxlamağa və onun işini yerinə yetirməyə ehtiyac yoxdur.
- Fayl ölçüsünün kiçilməsi: Bəzi hallarda, AOT ilə kompilyasiya olunmuş proqramlar daha kiçik ola bilər, çünki onlar JIT kompilyator və əlaqəli meta məlumatları ehtiva etmir.
Əksikliklər:
- Daha uzun kompilyasiya vaxtı: Proses əhəmiyyətli vaxt ala bilər.
- Dinamik optimizasiyaların olmaması: Real vaxtda yerinə yetirməyə və profilə əsaslanan optimizasiyaları tətbiq etmək mümkün deyil.
- Xüsusi ikili faylların yaradılması: Hər bir hədəf platforması üçün ayrıca kompilyasiya tələb olunur.
- Daha böyük ikili fayl ölçüsü: Bəzən, AOT bütün zəruri kod və asılılıqları daxil etdiyi üçün ölçünü artıra bilər.
İstifadə nümunələri:
- .NET Native
- OpenJDK (GraalVM Native Image)
- Go
- Rust
- Bəzi JavaScript çərçivələri (məsələn, Angular ilə AOT)
AOT kompilyasiyası tez-tez başlanğıc vaxtı kritik olan, proqnozlaşdırılan performans tələb edən və ya məhdud resurslara malik cihazlara yerləşdirmə üçün istifadə olunur.