SORU
25 EYLÜL 2008, PERŞEMBE


Python: YUDUM vs ctypes

Python, hangi şartlar altında YUDUM paylaşılan kitaplıkları arama giriş noktaları için ctypes daha iyi bir seçimdir? Diyelim ki zaten YUDUM arabirim dosya(lar) var olmadığını varsayalım.

İki performans ölçümleri nedir?

CEVAP
25 EYLÜL 2008, PERŞEMBE


YUDUM (çok) çirkin C veya C kodu üretir. Bu basit kullanmak için basit işlevleri (her şey olabilir direkt tercüme) ve oldukça kolay kullanım için daha karmaşık fonksiyonları gibi fonksiyonları ile çıkış parametreleri ihtiyacım var fazladan çeviri adımı temsil Python.) Daha güçlü arayüz için sık sık arayüz dosyasının bir parçası olarak C parçaları yazmak gerekiyor. Basit bir şey ama kullanmak için nesneler sabit değil temsil nasıl CPython hakkında bilmeniz gerekir, ama aklında bulunsun.

ctypes doğrudan C işlevleri, yapıları ve diğer veri erişim sağlar, ve yük paylaşılan kitaplıkları keyfi. Bunun için herhangi bir C yazmana gerek yok, ama C nasıl çalıştığını anlamak gerekir. Olur, olabilir iddia, flip side YUDUM: yok kodu oluştur ve bunu gerektirmez derleyici çalışma zamanında, ama hiç de basit kullanmak gerektiren ne anladığınızı şey gibi C veri türleri, döküm, bellek yönetimi ve uyum işi. Ayrıca manuel veya otomatik olarak doğru bellek düzeni de dahil olmak üzere datastructure ctypes eşdeğer, C yapılar, sendikalar ve diziler çevirmek gerekir.

Saf yürütme, YUDUM gerçek bir geçici çözüm, bu yönetimi zamanında Python derleme C yerine yapıldığından daha hızlı ctypes daha olasıdır. Ama her biri farklı C fonksiyonları bir sürü birkaç kez arayüzü sürece, ancak bu yükü gerçekten fark olacak olası değil.

Arayüz dosyaları hakkında bilgi gerek yok, üretmek yok .geliştirme zamanı, ctypes çok daha düşük bir Başlangıç maliyeti vardır: c dosyaları ve bunları derleme, kontrol ve uyarıları susturmak zorunda değilsin. Sadece atlamak ve en az çaba ile tek bir C işlevi kullanmaya başlamak, daha genişletin. Ve bazı şeyleri doğrudan Python yorumlayıcısı test denemek olsun. Kod kaydırma çok daha basit yapmak için çalışır (ctypes-yapılandırın. gibi) olsa da biraz sıkıcı bir iştir,

YUDUM, diğer taraftan, birden çok dil için mahfazalar (dile özgü doldurulması gereken ayrıntılar dışında, özel bir C kodu gibi yukarıda bahsettim.) oluşturmak için kullanılabilir Bir sürü, bir YUDUM küçük bir yardım ile işleyebileceği bir sürü kod kaydırma, kod nesil de çok ctypes eşdeğerleri daha ayarlamak için daha kolay olabilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kalabrandmusic

    kalabrandmus

    25 Kasım 2009
  • rtisticsdev

    rtisticsdev

    31 Mayıs 2012
  • ThePhestor

    ThePhestor

    22 Mart 2011