Runtimes Karşılaştırılması

4 Cevap php

Python vs PHP bazı doğru zamanı karşılaştırmalar (ve potansiyel olarak ben dahil herhangi başka bir dil) almaya çalışıyorum. Bir komut dosyası içinde zamanlama benim sorunum değil ama bir komut dosyası içinde zamanlama isteği çıktı komut dosyasını çalıştırmak için yapılır andan itibaren her şey için hesap vermez.

1) Is it actually worth taking such things into account? 2) Assuming it is worth taking it into account, how do I do this?

Ben bu yüzden Linux komutları erişimi var bir Mac kullanıyorum ve bana yardım etmek için bir komut oluşturmak / derleme için korkmuyorum, ben sadece böyle bir komut yazmak nasıl bilmiyorum.

Herhangi bir yardım için şimdiden teşekkürler

4 Cevap

Senin fikrin dillerini karşılaştırmak için ise, ben onların dışında bir şey karşılaştırma amaçları için geçerli değildir söyleyebilirim.

Yine de her şeyi ölçmek ve bir komut dosyası içinde zamanlama ile karşılaştırabilirsiniz zaman komutunu kullanabilirsiniz.

Bu gibi:

$ time script.php
HI!

real    0m3.218s
user    0m0.080s
sys     0m0.064s

Bu, size kullanıcı zaman (php yorumlayıcı) ve sys zaman (OS saat) saat zaman verecektir

Eğer web düşünüyorsanız, o zaman havai websunucu karıştırma olacağını ve karşılaştırmak için her zaman kolay değildir, çünkü çok zor olur, eğer diyelim ki, sen WSGI v / s mod_php'yi kullanıyor. Sonra siz de zincirin webserving bölüme sondaları kanca olurdu

Sen aşağıdaki kaynak kullanarak farklı dillerde performansını karşılaştırabilirsiniz:

Computer Language Benchmarks Game

  1. Bu kodu optimize eğer dikkate hız alarak değer. (: Mevcut kod temeli belirli bir görev çok uzun sürüyor "Ben PHP Python daha yavaş olduğunu duymuştum", değil gibi) kodu optimize konum neden genellikle bilmeli. Bu aslında dilini değiştirme planı yoksa dikkate hız alarak not değer. Küçücük bir modül biraz daha hızlı bir şey yok sırf başka bir dilde app yeniden iyi bir fikir olduğu anlamına gelmez. Hız dışında bir dil seçimi için birçok faktör vardır.

  2. Elbette size benchmark,. İki codebases birden fazla kez çalıştırmak ve zamanlama karşılaştırın. Her iki komut kabuğu çalıştırılabilir ise time komutunu kullanın, ya da her dilden ilgili kıyaslama işlevini kullanabilirsiniz; İkinci durumda, doğal, gerçek dili büyük ölçüde bağlıdır.

Peki, size yardım etmek için "zaman" komutunu kullanabilirsiniz:

you@yourmachine:~$ time echo "hello world"
hello world

real    0m0.000s
user    0m0.000s
sys 0m0.000s
you@yourmachine:~$

Ve bu ortamı dışında zamanlaması etrafında alacak.

Eğer ihtiyacınız olup olmadığını gelince aslında ekstra bir iş ... bu tamamen ne yapıyorsun bağlıdır o zaman. Ben bu çeşit web uygulamasının bir tür için olduğunu varsayalım, bu nedenle kullandığınız çerçeve aslında nasıl bağlıdır ... Bu script derlenmiş (ya çözümlü) sürüm çeşit önbelleğe nedir? Eğer öyleyse (ilk hit başlangıç ​​zamanı var tek olacağından), sonra başlangıç ​​zamanı tamamen alakasız olacak.

Ayrıca, ilk çalıştırmak indirim (ve isterseniz sizin raporunda ilk kaçak maliyeti dahil) böylece bir döngü içinde sınamaları çalıştırmak için emin olun. Java bazı testler yapmış ve ilk çalıştırma nedeniyle işini yapıyor JIT her zaman yavaş (ve hit aynı tür PHP, Python ve deneyin başka dillerde olabilir).