Python betiğimin eşdeğer bir C ++ programı kadar hızlı olmasını engelleyen teknik sınırlamalar veya dil özellikleri var mı?
Hayır. Bu sadece C ++ 'nın hızlı çalışmasını sağlamak için dökülen para ve kaynaklar ile Python'un hızlı çalışmasını sağlamak için dökülen kaynaklar.
Örneğin, Self VM ortaya çıktığında, sadece en hızlı dinamik OO dili değil, aynı zamanda en hızlı OO dil periyoduydu. İnanılmaz derecede dinamik bir dil olmasına rağmen (örneğin Python, Ruby, PHP veya JavaScript'ten çok daha fazlası), mevcut olan C ++ uygulamalarının çoğundan daha hızlıydı.
Ancak Sun, TV set üstü kutularındaki animasyonlu menüler için küçük bir komut dosyası diline odaklanmak için Self projesini (büyük sistemler geliştirmek için olgun bir genel amaçlı OO dili) iptal etti (bunu duymuş olabilirsiniz, buna Java denir) daha fazla fon. Aynı zamanda Intel, IBM, Microsoft, Sun, Metrowerks, HP ve ark. büyük miktarda para ve kaynak harcadı C ++ hızlı. CPU üreticileri, C ++ 'ı hızlı hale getirmek için yongalarına özellikler ekledi. İşletim Sistemleri C ++ 'ı hızlı yapmak için yazılmıştır veya değiştirilmiştir. Yani, C ++ hızlıdır.
Python'a çok aşina değilim, daha çok Ruby insanıyım, bu yüzden Ruby'den bir örnek vereceğim: Rubinius Ruby uygulamasındaki Hash
sınıf (işlev ve önemde eşdeğer dict
)% 100 saf Ruby'de yazılmıştır; yine de Hash
el ile optimize edilmiş C ile yazılmış YARV sınıfından daha iyi rekabet ediyor ve hatta bazen daha iyi performans gösteriyor. .
Python'da onu yavaşlatan hiçbir şey yoktur. Bugünün işlemcilerinde ve işletim sistemlerinde Python'a zarar veren özellikler var (örneğin, sanal belleğin çöp toplama performansı için korkunç olduğu biliniyor). C ++ 'a yardım eden ancak Python'a yardım etmeyen özellikler vardır (modern CPU'lar önbellek hatalarından kaçınmaya çalışırlar, çünkü çok pahalıdırlar. Java için tasarlanan Azul Vega CPU bunu yapıyor.)
Python'u C ++ için yapıldığı gibi hızlı hale getirmek için çok fazla para, araştırma ve kaynak harcarsanız ve Python programlarını C ++ için yapıldığı kadar hızlı çalıştıran işletim sistemlerini yapmak için çok fazla para, araştırma ve kaynak harcarsanız ve Python programlarının C ++ için yapıldığı gibi hızlı çalışmasını sağlayan CPU'ların yapılmasına ilişkin çok fazla para, araştırma ve kaynak, o zaman Python'un C ++ ile karşılaştırılabilir performansa ulaşabileceğine şüphe yok.
ECMAScript ile sadece bir oyuncu performans konusunda ciddileşirse ne olabileceğini gördük. Bir yıl içinde, tüm büyük satıcılar için temelde 10 kat performans artışı elde ettik.