- CPython'ın JIT derleyicisi macOS AArch64'te %11~12, x86_64 Linux'ta %5~6 daha yüksek performansa ulaştı ve hedefe beklenenden erken erişti
- 3.13~3.14 sürümlerinde JIT yorumlayıcıdan daha yavaştı; ancak topluluk odaklı geliştirme ve yapısal iyileştirmeler sayesinde performans belirgin biçimde arttı
- İz kaydı (trace recording) yaklaşımı ve referans sayımı kaldırma (reference count elimination) gibi deneysel girişimler başlıca dönüm noktaları oldu
- Savannah Ostrowski, Mark Shannon, Diego Russo, Brandt Bucher gibi kilit katkıcılar ve çok sayıda yeni katılımcı birlikte çalıştı
- Bu sonuç, topluluk güdümlü geliştirme ve işbirliği kültürünün açık kaynak performans iyileştirmelerinde somut etki yaratabildiğini gösteriyor
CPython JIT performansındaki iyileşmenin durumu
- macOS AArch64'te %11~12, x86_64 Linux'ta %5~6 daha yüksek performans kaydedildi
- Ölçümler geometrik ortalama temelinde yapıldı; bazı benchmark'larda sonuçlar %20 daha yavaştan %100'den fazla daha hızlıya kadar değişti
- free-threading desteği hâlâ tamamlanmış değil; hedef 3.15/3.16 sürümleri
- 3.13~3.14 sürümlerindeki JIT yorumlayıcıdan daha yavaştı, ancak bu sürümde anlamlı bir hız artışı elde edildi
Topluluk merkezli JIT geliştirmesi
- 2025'te Faster CPython ekibinin ana sponsorluğunun sona ermesinin ardından topluluk güdümlü geliştirme modeline geçildi
- Hedef: 3.15'te %5 iyileşme, 3.16'da %10 iyileşme ve free-threading desteği
- bus factor'ı azaltmak için her aşamada (frontend, middle-end, backend) en az 2 bakımcı bulunduruldu
- Karmaşık sorunlar küçük parçalara ayrılarak yeni katkıcıların katılımı teşvik edildi
- Brandt Bucher, 'mega-issues' ile işleri daha küçük birimlere böldü
- 11 katkıcı, yorumlayıcı komutlarını JIT optimizasyonuna daha uygun hâle dönüştürdü
- Katkıyı teşvik etme ve başarıyı paylaşma kültürü, katılımın sürmesine yardımcı oldu
- Bunun sonucunda x86_64 Linux'ta performans %1'den %3~4'e yükseldi
Başlıca teknik dönüm noktaları
İz kaydı (trace recording)
- CPython core sprint sırasında izleme tabanlı bir frontend'e geçildi
- Başlangıçta %6 daha yavaştı, ancak dual dispatch yapısının eklenmesiyle performans iyileşti
- Yorumlayıcının boyutundaki artış en aza indirilirken temel yorumlayıcı hızı korundu
- İz kaydının eklenmesiyle JIT kod kapsaması %50 arttı, ardından optimizasyon verimliliği yükseldi
Referans sayımı kaldırma (reference count elimination)
- Matt Page'in bytecode optimizasyon çalışmasından esinlenildi
- Referans sayımı azaltılırken ortaya çıkan dal (branch) kaldırılarak performans artırıldı
- Yalnızca tek bir dalın kaldırılması bile birikimli maliyeti azaltmada etkili oldu
- Paralelleştirmesi kolay olduğu için, JIT yapısını öğretmeye yönelik bir görev olarak yeni katkıcıların eğitiminde kullanıldı
Altyapı ve ekip yapısı
- Savannah Ostrowski, 4 makineyle JIT performans ölçüm altyapısını işletiyor
- Günlük JIT çalıştırma sonuçlarıyla performans gerilemeleri (regression) erken tespit ediliyor
- Diego Russo, ARM donanımı için JIT ve profiler uyumluluğunu iyileştirmekten sorumlu
- Brandt Bucher, makine kodu backend temelini kurarak yeni katkıcılar için giriş engelini düşürdü
İşbirliği ve bilgi paylaşımı
- CF Bolz-Tereick'ten alınan PyPy tavsiyeleri, JIT tasarımının daha iyi anlaşılmasını sağladı
- Max Bernstein gibi derleyici uzmanlarıyla kurulan temas, sürekli motivasyon ve teknik gelişimi destekledi
- PyPy kodunu inceleme deneyimi, CPython JIT kalitesinin artmasına katkı sağladı
Sonuç
- Python 3.15'in JIT'i, topluluk işbirliği, teknik deneyler ve altyapı iyileştirmelerinin birleşik sonucu
- İnsanlar, şans ve işbirliği kültürü, açık kaynakta performans odaklı yeniliğin temel itici gücü olduğunu kanıtlıyor
Henüz yorum yok.