Frage

Ich versuche, einige genaue Laufzeitvergleiche von PHP vs Python (und möglicherweise eine andere Sprache, die ich habe zu zählen) zu erhalten. Timing innerhalb eines Skripts ist nicht mein Problem, aber Timing in einem Skript nicht für alles, was nicht Konto ab dem Zeitpunkt des Antrag gestellt wird, um das Skript zur Ausgabe auszuführen.

  

1) Ist es wirklich lohnt sich, solche Dinge zu berücksichtigen?

     

2) Unter der Annahme, es lohnt sich, es zu berücksichtigen, wie mache ich das?

Ich verwende einen Mac So habe ich Zugriff auf Linux-Befehle und ich habe keine Angst, einen Befehl zu kompilieren / erstellen, mir zu helfen, ich weiß nur nicht, wie einen solchen Befehl zu schreiben.

War es hilfreich?

Lösung

Wenn Sie Ihre Idee, die Sprachen zu vergleichen ist, würde ich sagen, etwas außerhalb sie für Vergleichszwecke nicht relevant ist.

Dennoch können Sie die Zeit Befehl verwenden, um alles zu messen und es mit dem Timing innerhalb eines Skripts vergleichen.

Wie folgt aus:

$ time script.php
HI!

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

Es wird Ihnen Uhrzeit, Benutzerzeit (PHP-Interpreter) und sys Zeit (OS Zeit)

Wenn Sie Web denken, dann wird es viel schwieriger, weil Sie Webserver Kopf Mischen werden würde, und das ist nicht immer einfach zu vergleichen, wenn, sagen wir, Sie WSGI v / s mod_php verwenden. Dann würden Sie haben Sonden in die webserving Teile der Kette, Haken und

Andere Tipps

  1. Es lohnt Geschwindigkeit berücksichtigen, wenn Sie Code zu optimieren. Sie sollten in der Regel wissen, warum Sie Code zu optimieren (wie in: eine bestimmte Aufgabe in Ihrer bestehenden Code-Basis zu lange dauern, nicht „Ich habe gehört, PHP ist langsamer als Python“). Es ist nicht lohnt sich Geschwindigkeit zu berücksichtigen, wenn Sie tatsächlich auf die Sprachumschaltung nicht planen. Nur weil ein winziges Modul etwas tut, etwas schneller, bedeutet nicht, Ihre Anwendung in einer anderen Sprache Umschreiben ist eine gute Idee. Es gibt viele andere Faktoren, die zu einer Sprache neben Geschwindigkeit zu wählen.

  2. Sie Benchmark, natürlich. Führen Sie die zwei Codebases mehrere Male und vergleichen Sie das Timing. Sie können die Befehl Zeit, wenn beide Skripte von der Shell ausgeführt werden können verwenden, oder die jeweilige Benchmark-Funktionalität von jeder Sprache; der letztere Fall hängt stark von der verwendeten Sprache, natürlich.

Nun können Sie den „Zeit“ Befehl verwenden, um:

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

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

Und das wird kommen um außerhalb der Umwelt Timing.

Als ob Sie tatsächlich benötigen, um Zeit, dass zusätzliche Arbeit ... das hängt ganz auf das, was Sie tun. Ich nehme an, dies für eine Art von Web-Anwendung von einer Art ist, so dass es hängt davon ab, wie das Framework Sie tatsächlich funktioniert verwenden ... es eine Art zusammengestellt (oder analysiert) Version des Skripts nicht cachen? Wenn ja, dann wird die Startzeit völlig irrelevant sein (da der erste Treffer der einzige sein wird, die Startzeit vor).

Also, stellen Sie sicher, dass Ihre Tests in einer Schleife laufen, so dass Sie den ersten Lauf diskontieren kann (und beinhalten die Kosten auf dem ersten Lauf in Ihrem Bericht erstellen, wenn Sie möchten). Ich habe einige Tests in Java getan, und der erste Lauf ist immer langsamste aufgrund der JIT seine Arbeit tun (und die gleiche Art von Erfolg kann in PHP, Python existieren und alle anderen Sprachen, die Sie versuchen).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top