mmofacts.com

PHP Benchmark

gepostet vor 18 Jahre, 10 Monate von Kampfhoernchen
Also einen der Tests kann ich bestätigen:
For-loop test

Sonst führ t PHP die Berechnung jedes mal neu aus, da sich der Inhalt der Variable ja geändert haben könnte.

Leider fehlt der wohl interessanteste Vergleich: mysql_ vs. mysqli_

Den Text mit ' vs. " finde ich etwas merkwürdig. Vielleicht hätte man das ganze mal mit etwas längeren Strings machen sollen. Da stecken bei "echten Strings" mir mehr als 100 Bytes bis zu 40% Performance drin. Auch mit PHP 5.
Ein Vergleich mit sprintf wäre hier ganz sinnvoll gewesen, der liegt nach meinen Benchmarks nämlich dazwischen, etwa 15% schneller als die Variante mit ".
gepostet vor 18 Jahre, 9 Monate von Haryl
Hi,
hier mal ein Benchmark von mir:

$var1 = "verwahrlosten";

$var2 = "Bayern";
$text = "Franz jagt im komplett $var1 Taxi quer durch $var2.";
Berechnungszeit: 0.6709 sec

$var1 = 'verwahrlosten';

$var2 = 'Bayern';
$text = 'Franz jagt im komplett ' . $var1 . ' Taxi quer durch ' . $var2 . '.';
Berechnungszeit: 0.4744 sec


$var1 = 'verwahrlosten';

$var2 = 'Bayern';
$text = sprintf('Franz jagt im komplett %s Taxi quer durch %s .', $var1, $var2);
Berechnungszeit: 0.6297 sec


Das ganze wurde jeweils 100.000 mal ausgeführt... was mir nun sagt, ich sollte doch die Methode mit den einfachen Anführungszeichen nehmen, statt Sprintf. Allerdings lieber Sprintf als normale Anführungszeichen.

mfG
gepostet vor 18 Jahre, 9 Monate von BjoernLilleike
Wenn du statt der %s jedoch %1, %2 und so benutzt, dann mag das zwar etwas langsamer sein, dafür bist du bei späterer lokalisierung in andere Sprachen freier.

Das kann dir eine Menge Ärger ersparen. Ich musste neulich ein Projekt ändern und neu kompilieren, weil der von uns angenommene deutsche Satzbau in Russland einfach nicht erreicht werden konnte. Sehr ärgerlich, sage ich dir.

Hätte ich denen sagen können: Dann tauscht doch einfach %1 und %2 aus, wären mir viele Stunden Arbeit erspart geblieben.
gepostet vor 18 Jahre, 9 Monate von Mudder
Da sind Templates ja wieder die grossen Helden (auch wenn diese die langsamsten von allen sind).

Doch wenns darum geht Projekte zu lokalisieren dann kommst du meistens um neue Designs eh kaum rum (zumindest sobalds andere Sonderzeichen in der jeweiligen Sprache gibt).
Ging mir die Tage ja ähnlich nachdem ich mein Arbeitsprojekt von ISO-8859-1 auf UTF-8 umstellen musste. Seite war mit dank Templates und einer Sprachdatei schnell geändert. Nur die Datenbank mit den ganzen alten ISO-Datensätzen machte Probleme..

@Haryl
Sind die Zeiten jetzt eigentlich die Ergebniss der ganzen Schleife oder etwa der Durchschnitt eines jeden Laufs? (vorsichtshalber mal nachfragen)
gepostet vor 18 Jahre, 9 Monate von Haryl
Original von Mudder
@Haryl
Sind die Zeiten jetzt eigentlich die Ergebniss der ganzen Schleife oder etwa der Durchschnitt eines jeden Laufs? (vorsichtshalber mal nachfragen)


Ist das Ergebniss aus allen durchläufen ... Bei einem durchlauf so eine Rechenzeit... dann würd ich PHP wohl kaum benutzen ... Bei einem durchlauf sind keine und wenn dann nur seeeeeehr geringe unterschiede zu erkennen... deshalb hab ich es 100.000 mal durchlaufen lassen. Ist natürlich in einem Browsergame eher unrealistisch, das eine echo o.ä. in einer Schleife 100.000 mal ausgeführt wird, aber es häuft sich in einem Script ja schon an .

Ich muss gestehen, dass ich selber auch Templates benutze, allerdings nix fertiges, sondern selbst Gecodet und so rechenleistungsarm wie möglich gehalten... ich mache vor jedem neuen Codesegment welches ich einfüge einen kleinen Benchmark mit allen möglichen möglichkeiten, um die schnellste nachher zu benutzen... kann ich nur empfehlen!

Vllt. kann ich die Tage mal eine Längere Liste posten mit bisherigen ergebnissen... Im Moment bin ich nur leider nicht zuhause.

mfG

Auf diese Diskussion antworten