Python 3.13'e JIT derleyicisi eklendi
- CPython çekirdek geliştiricisi Brandt Bucher, Python 3.13 dalına JIT derleyicisi ekleyen bir pull request gönderdi.
- Bu değişiklik, Python 3.11'e eklenen özelleşmiş uyarlamalı yorumlayıcıdan sonra CPython yorumlayıcısındaki en büyük değişikliklerden biri olacak.
JIT nedir?
- JIT (Just in Time) derleme, kod ilk kez çalıştırıldığında derlemenin yapılmasını ifade eden bir tasarımdır.
- JIT derleyicisi, makine kodu üreten derleyicidir ve AOT (Ahead of Time) derleyicisinin karşıtıdır.
- Python kodu önce bytecode'a derlenir; bu bytecode CPU için doğrudan bir anlam taşımaz ve özel bir bytecode yorumlayıcı döngüsü üzerinden çalıştırılır.
copy-and-patch JIT nedir?
- copy-and-patch JIT, 2021'de önerilen bir kavramdır ve dinamik dil çalışma zamanları için hızlı bir algoritma olarak tasarlanmıştır.
- copy-and-patch JIT, her komut için talimatları kopyalayıp bytecode argümanlarını doldurma (patch etme) fikrine dayanır.
copy-and-patch JIT'in avantajları ve dezavantajları
- "Tam" JIT derleyicileri, yüksek seviyeli bytecode'u ara dilin (IL) düşük seviyeli talimatlarına derlerken, copy-and-patch JIT bytecode'dan makine koduna derlemeyi bir şablonlar kümesiyle gerçekleştirir.
- copy-and-patch JIT, Python çalışma zamanı içinde karmaşık bir JIT derleyici mimarisini çalıştırmayı gerektirmez; yalnızca LLVM JIT araçlarının, CPython'ın kaynak koddan derlendiği makinede kurulu olması yeterlidir.
Bu JIT nasıl çalışıyor?
- Python 3.13 API'sine yeni eklenen API genişletilerek, takılabilir bir optimize edicinin çalışma zamanında bulunabilmesi sağlanır.
- Yeni JIT, bu yeni mimari için isteğe bağlı bir optimize edicidir.
- CPython'ı kaynak koddan derlerken
--enable-experimental-jit bayrağı verilirse, Python bytecode'u için makine kodu şablonları oluşturulur.
Bu JIT daha hızlı mı?
- İlk benchmark sonuçları yaklaşık %2-9 performans artışı gösteriyor.
- Bu JIT, Python performansını büyük ölçüde artırabilecek bir dizi optimizasyonun temel taşıdır.
GN⁺ görüşü
- Python 3.13'e eklenen JIT derleyicisi, Python'un çalışma hızını artıran önemli bir değişikliktir; özellikle tekrarlayan işlerde verimliliği yükseltebilir.
- copy-and-patch JIT, karmaşık JIT mimarisini kullanıcının Python çalışma zamanına entegre etmeye gerek kalmadan performansı artıran yenilikçi bir yaklaşım sunar.
- Bu teknoloji, Python topluluğu için heyecan verici tartışmalar doğuruyor ve Python performans optimizasyonu için yeni kapılar açması bekleniyor.
1 yorum
Hacker News görüşleri