SORU
12 EKİM 2012, Cuma


Neden't standart Python dahil PyPy değil mi?

PyPy bakıyordum ve sadece enjekte Python dağıtımları içine kabul olmadı diye merak ediyorum. TAM zamanında derleme ve daha düşük bellek ayak izi gibi şeyler büyük ölçüde tüm Python kod hızı artırmak değil mi?

Kısacası, bu ayrı bir proje kalmasına neden olan PyPy ana dezavantajları nelerdir?

CEVAP
12 EKİM 2012, Cuma


PyPy CPython bir çatal değil, asla doğrudan CPython içine birleştirilmiş olabilir.

Teorik olarak Python topluluğu PyPy evrensel olarak kabul edebilir, PyPy referans uygulaması yapılmış olabilir, ve CPython üretilmiyor olabilir. Ancak, PyPy kendi zayıf yönleri vardır:

  • CPython kolay Python modülleri geleneksel olarak Python uygulamaları İŞLEMCİ-yoğun görevleri ele yolu (örneğin SciPy projesi) olan C ile yazılmış entegre etmektir.
  • PyPy TAM zamanında derleme hızlı genel olur sadece derlenmiş kod tekrarlanan koşu ile değil CPU zaman kendisi maliyetlerini adım. Bu başlangıç kat daha yüksek olabilir anlamına gelir, ve bu nedenle PyPy mutlaka tutkal kod veya önemsiz komut dosyalarını çalıştırmak için verimli değil.
  • PyPy ve CPython davranış, özellikle de gelince her bakımdan bir ve aynı değildir, "uygulama ayrıntıları" (dil tarafından belirtilen değil, ama yine de pratik düzeyde önemli bir davranış).
  • CPython PyPy daha mimarileri üzerinde çalışır ve başarıyla PyPy için pratik olmayabilir şekillerde gömülü mimarileri çalıştırmak için uyarlanmıştır.
  • Bellek yönetimi için CPython referans sayma düzeni bu mutlaka "GC" stratejileri. saf gerçek olmasa da belki PyPy çeşitli GC sistemleri daha öngörülebilir bir performans etkileri vardır,
  • PyPy henüz tam olarak Python 3 desteklemiyor.bu aktif bir iş kalemi olmasına rağmen x,.

PyPy büyük bir projedir, ama CPU-yoğun görevler üzerinde çalışma zamanı hız her şey değildir, ve birçok uygulamada çok endişe en son şey olmalı. Örneğin, Django olabilir kaçak PyPy ve bu şablon daha hızlı yapar, ama CPython veritabanı sürücüleri daha hızlı PyPy; sonunda, hangi uygulama daha verimli bağlı bulunduğu darboğaz verilen bir uygulamadır.

Başka bir örnek: PyPy oyunlar için harika olacağını düşünmek istiyorum, ama bu PyPy kullanılan en GC stratejileri fark titreme neden olur. CPython için, en CPU-yoğun oyun şeyler devredilen için PyGame Kütüphanesi, PyPy olmaz yararlanmak beri PyGame öncelikle uygulanan bir C uzantısı (gerçi bkz: pygame-cffi). Ben hala PyPy oyunlar için harika bir platform olabilir sanırım, ama asla kullanıldığını gördüm.

PyPy ve CPython de "" her durumda. diğerinden daha iyi yani temel tasarım soruları için kökten farklı yaklaşımlar ve farklı bileşimleri olun

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mr_BrettHooge

    Mr_BrettHoog

    3 Ocak 2011
  • sdasmarchives

    sdasmarchive

    2 HAZİRAN 2010
  • whiteboy7thst

    whiteboy7ths

    1 Temmuz 2009