Thread overview
Derleyici Kavramları: AHead of Time ve Just-In Time Derleme Nedir?
Nov 15, 2016
İbrahim
Nov 16, 2016
İbrahim
November 16, 2016

Selamün Aleyküm;

Derleyici kavramlarından olan AHead of Time (AoT) ve Just-In Time (JIT) tam olarak nedir? Bu ikisinin arasındaki farklar ve birbirlerine olan artıları / eksileri nelerdir? Diğer bir sorum ise C ve C++ dillerinin derleyicileri AoT türünde derleyiciler midir?

Teşekkürler!

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

November 16, 2016

Cevabınız için teşekkür ederim. Bu suali sormamdaki amaç şu; Android'de bildiğimiz gibi kodlar JIT olarak derlenerek çalışıyordu (Dalvik), daha sonra bu yapı değişti ve AoT türünde derlemeler yapıldı (ART). Şimdi Android'de ART makinesi kullanılarak kodlar (Java) AoT mantığıyla direk derleniyorsa o zaman normal C ve C++'dan farkı kalmıyor. Ama Android'de NDK aracı sayesinde JNI ile performans gerektiren kodları yazabiliyoruz. O zaman bu NDK'ya hala daha ihtiyaç duyuluyor mu? Duyuluyorsa ART makinesi Java kodlarını AoT mantığıyla derlemesi ne işe yarıyor?

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]

November 16, 2016

Evet, C, C++, D, hep ahead of time (önceden) derlenen dillerdir. (Aslında öyle olması şart değil ama mantıksal ve geleneksel olarak öyle.) Yani, kod, işletilmeye başlanmadan önce derlenir ve hep o derlenmiş olan kod işletilir.

Just in time (sırasında) derleme ise kodun işletilirken derlenmesidir.

  • AoT kodun tamamını derler JiT ise yalnızca kullanılan bölümünü.

  • Genelde AoT daha başarılı eniyileştirmeler (optimization) uygulayabilir ama JiT çalışma sırasında toplandığı verilere dayanarak daha iyi eniyileştirmeler yapabilir. (Hatta, daha önceden uyguladığı eniyileştirmelerden vazgeçebilir.)

  • JiT çalışma zamanında derleme ve eniyileştirmeler için zaman harcamak zorundadır, AoT o gibi işleri çoktan bitirmiştir.

Bunun gibi şeyler... :)

Ali

--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]