AOT derlemesi (Ahead-of-time compilation) C veya gibi daha üst düzey bir programlama dili, Java bytecode veya .NET Framework Ortak Ara Dil () kodu gibi bir ara temsilciliğin yerli (sisteme bağlı) bir makine diline derleme eylemidir. Sonuçta ortaya çıkan ikili dosya yerel olarak çalıştırılabilir.
AOT, standart bir yerli derleyici gibi makine tarafından optimize edilmiş kodlar üretir. AOT, mevcut bir sanal makinenin (VM) bayt kodunu makine koduna çevirir.
Çalışma zamanı yükünün azaltılması
Bir ara temsil olarak derlenebilir bir yönetilen kodun çalışma zamanı olan bazı programlama dilleri, (JIT) derleme kullanır. Kısaca, ara kod yürütülürken, bir uygulamanın performansını yavaşlatan ara kod, yerel bir çalışma için makine koduna derlenir. Önceden hazırlanan derleme, yürütme aşamasından ziyade yürütmeden önce bu adımı atma ihtiyacını ortadan kaldırır.
Dinamik olarak yazılan diller için yerli makine koduna veya diğer statik VM bayt koduna öncül derleme yalnızca sınırlı sayıda mümkündür. Örneğin, Yüksek Performanslı Erlang Projesi (HiPE) AOT derleyicisi, Erlang dili için gelişmiş statik tipte yeniden yapılandırma teknikleri ve tip spekülasyonları nedeniyle yapılabilir.
Çoğu durumda, tamamen AOT tarafından derlenmiş programlar ve kütüphanelerle, bir çalıştırma ortamının yararlı bir bölümünü düşürmek, böylelikle disk alanı, bellek, pil ömrü ve başlatma sürelerini (JIT ısınma aşaması yok) azaltmak vb. işlemler mümkündür. Bu, gömülü veya mobil cihazlarda yararlı olabilir.
Performans
AOT derleyicileri, çoğu durumda JITing'in çok pahalı olduğu düşünülen karmaşık ve gelişmiş kod optimizasyonlarını gerçekleştirebilirler. Bunun aksine, AOT genellikle JIT'de, çalışma zamanı profilli yönlendirmeleri, sahte sabit yayılımı veya dolaylı sanal işlevi yerleştirme gibi bazı optimizasyonları gerçekleştiremez.
Ayrıca, JIT derleyicileri spekülatif olarak kod üzerinde varsayımlar yaparak sıcak kod optimize edebilir. Daha sonra spekülatif bir varsayım kanıtlarsa, üretilen kodun deoptize edilmesi mümkündür. Bu işlem, kodun uyarlanabilir optimizasyonla yeniden optimize edilene kadar çalışan yazılımın performansını yavaşlatır. Bir AOT derleyicisi böyle varsayımlar yapamaz ve derleme zamanında olabildiğince çok bilgiyi çıkarması gerekir. Daha az uzmanlaşmış bir koda başvurmaya ihtiyacı vardır, çünkü bir yöntemle hangi türlerin geçeceğini bilmiyor. Bu gibi sorunlar, profil yönlendirmeli optimizasyonlar ile hafifletilebilir. Ancak bu durumda bile, oluşturulan kod, JIT derleyicisinin yaptığı gibi değişen çalışma zamanı profiline dinamik olarak adapte edilemez.
Örnek
Android mobil işletim sistemi, JIT derleyicisi kullanan bir sanal makine olan Dalvik ile 2008'de teslim edildi. 2013'te yerini AOT derlemesi kullanan yeni bir sanal makine olan Android Runtime yerini aldı, ancak 2017'de Runtime bir JIT derleyicisi aldı.
Kaynakça
- ^ "Arşivlenmiş kopya". 22 Mayıs 2015 tarihinde kaynağından . Erişim tarihi: 11 Şubat 2018.
- ^ . 12 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Şubat 2018.
- ^ . 5 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Şubat 2018.
- ^ . 7 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Şubat 2018.
- ^ . 12 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Şubat 2018.
- ^ "Arşivlenmiş kopya". 7 Aralık 2020 tarihinde kaynağından . Erişim tarihi: 11 Şubat 2018.
- ^ . 12 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Şubat 2018.
- ^ . 7 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Şubat 2018.
- ^ . 12 Şubat 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Şubat 2018.
Dış bağlantılar
- AOT IBM 5 Şubat 2018 tarihinde Wayback Machine sitesinde .
Ayrıca bakınız
- (JavaScript)
- (CIL)
- (Java)
- IL2CPU (CIL)
- (CIL)
- RubyMotion (Ruby)
- (CIL)
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
AOT derlemesi Ahead of time compilation C veya C gibi daha ust duzey bir programlama dili Java bytecode veya NET Framework Ortak Ara Dil kodu gibi bir ara temsilciligin yerli sisteme bagli bir makine diline derleme eylemidir Sonucta ortaya cikan ikili dosya yerel olarak calistirilabilir AOT standart bir yerli derleyici gibi makine tarafindan optimize edilmis kodlar uretir AOT mevcut bir sanal makinenin VM bayt kodunu makine koduna cevirir Calisma zamani yukunun azaltilmasiBir ara temsil olarak derlenebilir bir yonetilen kodun calisma zamani olan bazi programlama dilleri JIT derleme kullanir Kisaca ara kod yurutulurken bir uygulamanin performansini yavaslatan ara kod yerel bir calisma icin makine koduna derlenir Onceden hazirlanan derleme yurutme asamasindan ziyade yurutmeden once bu adimi atma ihtiyacini ortadan kaldirir Dinamik olarak yazilan diller icin yerli makine koduna veya diger statik VM bayt koduna oncul derleme yalnizca sinirli sayida mumkundur Ornegin Yuksek Performansli Erlang Projesi HiPE AOT derleyicisi Erlang dili icin gelismis statik tipte yeniden yapilandirma teknikleri ve tip spekulasyonlari nedeniyle yapilabilir Cogu durumda tamamen AOT tarafindan derlenmis programlar ve kutuphanelerle bir calistirma ortaminin yararli bir bolumunu dusurmek boylelikle disk alani bellek pil omru ve baslatma surelerini JIT isinma asamasi yok azaltmak vb islemler mumkundur Bu gomulu veya mobil cihazlarda yararli olabilir PerformansAOT derleyicileri cogu durumda JITing in cok pahali oldugu dusunulen karmasik ve gelismis kod optimizasyonlarini gerceklestirebilirler Bunun aksine AOT genellikle JIT de calisma zamani profilli yonlendirmeleri sahte sabit yayilimi veya dolayli sanal islevi yerlestirme gibi bazi optimizasyonlari gerceklestiremez Ayrica JIT derleyicileri spekulatif olarak kod uzerinde varsayimlar yaparak sicak kod optimize edebilir Daha sonra spekulatif bir varsayim kanitlarsa uretilen kodun deoptize edilmesi mumkundur Bu islem kodun uyarlanabilir optimizasyonla yeniden optimize edilene kadar calisan yazilimin performansini yavaslatir Bir AOT derleyicisi boyle varsayimlar yapamaz ve derleme zamaninda olabildigince cok bilgiyi cikarmasi gerekir Daha az uzmanlasmis bir koda basvurmaya ihtiyaci vardir cunku bir yontemle hangi turlerin gececegini bilmiyor Bu gibi sorunlar profil yonlendirmeli optimizasyonlar ile hafifletilebilir Ancak bu durumda bile olusturulan kod JIT derleyicisinin yaptigi gibi degisen calisma zamani profiline dinamik olarak adapte edilemez OrnekAndroid mobil isletim sistemi JIT derleyicisi kullanan bir sanal makine olan Dalvik ile 2008 de teslim edildi 2013 te yerini AOT derlemesi kullanan yeni bir sanal makine olan Android Runtime yerini aldi ancak 2017 de Runtime bir JIT derleyicisi aldi Kaynakca Arsivlenmis kopya 22 Mayis 2015 tarihinde kaynagindan Erisim tarihi 11 Subat 2018 12 Subat 2018 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Subat 2018 5 Subat 2018 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Subat 2018 7 Subat 2018 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Subat 2018 12 Subat 2018 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Subat 2018 Arsivlenmis kopya 7 Aralik 2020 tarihinde kaynagindan Erisim tarihi 11 Subat 2018 12 Subat 2018 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Subat 2018 7 Subat 2018 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Subat 2018 12 Subat 2018 tarihinde kaynagindan arsivlendi Erisim tarihi 11 Subat 2018 Dis baglantilarAOT IBM 5 Subat 2018 tarihinde Wayback Machine sitesinde Ayrica bakiniz JavaScript CIL Java IL2CPU CIL CIL RubyMotion Ruby CIL