Nuitka Python-to-C derleyici, büyük performans kazanımlarına hazır

Python'u hem performans kazanımları hem de daha taşınabilir bir çalışma süresi uğruna C'ye dönüştüren bir derleyici olan Nuitka, gelecekteki performans kazanımları için zemin hazırlayan bir kilometre taşı olan 0.6 sürümüne ulaştı. Nuitka geliştiricisi Kay Hayen'in belirttiği gibi, "Performans iyileştirmeleri muhtemelen her gelecek sürümde gerçekleşecek."

Nuitka 0.6, Python booltürlerine ( true/false) optimizasyonlar uygular , böylece bunları kullanan kod, mümkün olan en verimli C koduna indirgenebilir. boolOptimizasyonlar diğer değişken türleri için benzer optimizasyonlar başlangıcı olarak gelir.

Nuitka, Cython gibi, bir Python programını C'ye derler ve elde edilen yürütülebilir dosyayı maksimum uyumluluk için Python çalışma zamanına bağlar. Python 2.6, 2.7 ve 3.3 - 3.7 sürümlerinin tümü async,.

Nuitka ile derlenen Python programları, büyük performans artışlarından yararlanabilir. Hayen, Pystone kıyaslamasının Nuitka tarafından derlenmiş bir sürümünün geleneksel bir CPython uygulamasından yüzde 312 daha hızlı çalıştığını iddia ediyor.

Ancak Hayen, en önemli performans iyileştirmelerinin Nuitka'da tür çıkarımının gelmesini beklediğini ve belirli Python nesnelerinin yerel C sürümlerine tam olarak çevrilmesini sağladığını söylüyor.

Python'un dinamizmi, birçok çeşit optimizasyonu doğası gereği zorlaştırır. Çoğu Cython optimizasyonu, en iyi sonuçlar için büyük miktarda rehberlik ve özel bir açıklama sözdizimi gerektirir. Nuitka projesi, geliştiricinin koda açıklama eklemesini gerektirmeden aynı tür optimizasyonları sağlamayı amaçlamaktadır.

Yaygın olarak kullanılan başka bir Python hızlandırıcısı olan PyPy, Python kodunu derlemeye tam zamanında derleyerek çalışır. Ancak PyPy, yerinde optimizasyon için en iyi şekilde çalışır; bağımsız bir şekilde dağıtılan bir Python uygulamasını derlemeye uygun değildir. Nuitka, bağımsız yürütülebilir dosyalar oluşturur. Potansiyel kullanım örneklerinden biri, üçüncü taraf dağıtımı için bir Python uygulamasını paketlemektir.

Nuitka 0.6'daki diğer iyileştirmeler arasında Windows için Clang, Microsoft Visual C ++ ve Cygwin derleyicileri desteği, daha hızlı yeniden derleme için nesne dosyalarının önbelleğe alınması (yine Windows'ta) ve clang-formatokunabilirlik için oluşturulan C kodunun otomatik olarak biçimlendirilmesi bulunmaktadır  .