CPython JIT derleyicisinin 2 yıllık muhasebesi: mevcut durum, eksikler ve gelecek
(fidget-spinner.github.io)CPython'un JIT (Just-In-Time) derleyicisinin geliştirilmesine 2 yıldan uzun süredir katkı veren bir geliştiricinin samimi değerlendirmesi ve analizi.
Bu yazı, CPython'un JIT derleyicisine, özellikle de optimizasyon (optimizer) bölümüne temel katkılar sunan bir geliştiricinin, son 2~3 yıldaki deneyimlerine dayanarak projenin mevcut durumunu paylaştığı bir içerik.
Olumlu yönler: topluluk merkezli büyüme ve eğitim
- Topluluk oluşturma: Başlangıçta projeyi az sayıda geliştirici yürütüyordu, ancak bugün Microsoft'un Faster CPython ekibinin dağılmasına rağmen proje topluluk merkezli olarak işletiliyor. Savannah, Tomáš, Diego gibi yeni çekirdek katkıcılar katıldı; bu da JIT projesinin uzun vadeli sürdürülebilirliği için bilinçli bir çabaydı.
- Öğretilebilir JIT: JIT, derleyici konusunda uzmanlığı olmayan yeni katkıcıların da kolayca öğrenip katkı sunabilmesi için tasarlandı. Örneğin, 'tracing JIT' yaklaşımının benimsenmesi, karmaşık tüm kontrol akışı grafiği yerine tek bir temel bloğun statik analiziyle anlaşılabilmesini sağlayarak giriş engelini düşürdü.
Eksik kalan yönler: performans ve hatalı medya haberleri - Performans sorunu: Açık konuşmak gerekirse, CPython 3.13'teki JIT yavaş. Modern derleyicilerle (Clang 20) derlendiğinde JIT çoğu zaman yorumlayıcıdan daha yavaş kalıyor; ancak eski derleyiciler (GCC 11) kullanıldığında ancak benzer performans gösterebiliyor. 3.14 sürümü de yeni katkıcıları eğitmeye ve mevcut tür analizini genişletmeye odaklandığı için çarpıcı bir performans artışı olmadı. Yazar, kısa vadeli performans kazanımlarındansa uzun vadeli insan kaynağı yetiştirmenin daha doğru bir tercih olduğuna inanıyor.
- Yanlış medya haberleri: Başlangıçta medyada JIT'in yorumlayıcıdan "%2-9 daha hızlı" olduğu haberleri çıktı, ancak bu doğru değildi. Bu sayı, gerçek CPython yorumlayıcısıyla değil, JIT'in ara gösterimini (IR) çalıştıran çok yavaş bir 'tier 2 interpreter' ile yapılan karşılaştırmadan geliyordu. Bunun sonucunda kullanıcılar JIT hakkında yanlış beklentilere sahip oldu ve gerçekte çoğu zaman performans düşüşü yaşandı; yazar da bunun büyük bir hayal kırıklığı yarattığını söylüyor.
Sonuç ve gelecek beklentisi
Yazar, JIT konusunda hâlâ umutlu. Güçlü bir topluluk oluşturuldu ve şu anda birden fazla optimizasyon çalışması eşzamanlı olarak ilerliyor. Bu çabaların 3.14 sürümünde benchmark geometrik ortalaması bazında tek haneli yüzde düzeyinde hız artışı getirmesi bekleniyor.
Yazar, "Eğer gerçekten 'çirkin (ugly)' bir sorun olsaydı, artık JIT üzerinde çalışmazdım" diyerek yazıyı, topluluğun gücüyle JIT'in gelişmeye devam edeceğine dair olumlu bir bakışla tamamlıyor.
Henüz yorum yok.