SORU
26 EYLÜL 2008, Cuma


Makine kodu Python derlemek mümkün müdür?

Nasıl uygun makine koduna Python (muhtemelen Ara bir temsili C) derlemek için olabilir mi?

Muhtemelen Python çalışma zamanı kitaplığı bağlamak gerekir, ve hangi Python standart kütüphane herhangi bir bölümden derlenmiş (ve Bağlantılı) de gerek kendileri Python edildi.

Ayrıca, eğer ifadelerin dinamik değerlendirme yapmak istersen Python yorumlayıcısı paket gerekir, ama buna izin vermedi Python belki de bir alt hala yararlı olacaktır.

Herhangi bir hız ve/veya bellek kullanımı avantaj sağlayacak? Muhtemelen Python yorumlayıcısı başlangıç zamanı paylaşılan kütüphaneler hala başlangıçta yüklenmesi gerekir rağmen) elenecektir.

CEVAP
26 EYLÜL 2008, Cuma


@Greg Hewgill dediği gibi, bu her zaman mümkün değildir neden iyi nedenleri vardır. Ancak, kod belirli türde (çok algoritmik kod gibi) "gerçek" makine kodu. dönüştürülebilir

Birkaç seçenek vardır:

  • Makine kodu dinamik olarak yayar Psyco kullanın. /İşlevleri dönüştürmek için hangi yöntemleri dikkatli bir şekilde olsa da seçmelisiniz.
  • Kullanın bir Python - . Cython, ^em>gibibir Python derlenmiş C dil uzatma
  • RPython bir çevirmen olan PyPy (biralt kısıtlıen "dinamik" Python özellikleri) için C veya LLVM. desteklemeyen Python
    • PyPy hala oldukça deneysel
    • tüm uzantıları olacaktır

Bundan sonra, mevcut paketleri (Py2exe, Pyİnstaller dondurma) bir ikili içine her şeyi koymak için kullanabilirsiniz.

Sonuçta: eğer sorunuza genel cevap yok. Performans-kritik Python kodu varsa, mümkün olduğunca yerleşik işlevler (ya da "Nasıl benim Python kod daha hızlı yapabilirim" sorusu). sormanız kullanmayı deneyin Eğer bu işe yaramaz ise, kodu tanımlamak ve C (veya Cython) liman ve uzantısı kullanmayı deneyin.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Felice Musique

    Felice Musiq

    22 NİSAN 2014
  • Flash CS6 Video Tutorials for Beginners (Actionscript 3 Gaming)

    Flash CS6 Vi

    14 EYLÜL 2012
  • ShayLoss

    ShayLoss

    5 Kasım 2009