Benchmarks & Tipps zur Optimierung Ihrer PHP-Scripte

Nachfolgend finden Sie zahlreiche Ergebnisse und Auswertungen von Benchmark-Tests. Diese sollen Ihnen bei der Optimierung Ihrer PHP-Scripte helfen und enthalten Tipps und Tricks zur optimierten Programmierung mit PHP.
Dabei ist mehr als nur die Wahl der richtigen Funktion entscheidend für optimale Performance. Auch die logische Abfolge und Kombination trägt einen wesentlichen Teil zur bestmöglichen Laufzeit Ihrer PHP-Scripte bei. Dank der ausführlichen Erläuterungen zu jedem Code und Beispiel-Script sollten sich auch Anfängern der PHP-Programmierung die jeweiligen Vorteile erschließen.

Optimierung mit Echo und richtiger Verwendung von Anführungszeichen

Optimierung mit Echo und richtiger Verwendung von Anführungszeichen

Bei der einfachen Ausgabe von Text innerhalb Ihres PHP-Scripts gibt es unterschiedliche Möglichkeiten, die unterschiedliche Auswirkungen auf die Performance Ihrer Website haben. Wir haben die gängigsten Varianten einem Benchmark unterzogen. Die Ergebnisse zeigen Ihnen, auf was bei der Programmierung mit PHP zu achten ist, um maximale Performance zu erreichen.

Optimierung mit isset, empty und Vergleichsoperatoren bei Strings

Optimierung mit isset, empty und Vergleichsoperatoren bei Strings

PHP bietet unterschiedliche Operatoren, um Variablen auf Existenz bzw. vorhandenen Inhalt zu prüfen. Bei den Beispiel-Scripten auf dieser Seite wird davon ausgegangen, dass die Variablen einen String enthalten, leer sind oder nicht existent. Die äquivalenten Benchmark-Ergebnisse von Scripts, bei denen die Variablen Zahlenwerte enthalten, finden Sie unter empty und Vergleichsoperatoren bei Zahlen.

Optimierung mit empty und Vergleichsoperatoren bei Zahlen

Optimierung mit empty und Vergleichsoperatoren bei Zahlen

Um den einer Variablen zugeordneten Zahlenwert zu ermitteln und Bedingungen für die weitere Verarbeitung anzugeben, stehen in PHP unterschiedliche Operatoren zur Verfügung. Wir haben einige Scripts mit den beliebtesten Varianten erstellt und diese einem Benchmark-Test unterzogen, um festzustellen, ob sich durch Wahl unterschiedlicher Varianten Auswirkungen auf die Performance ergeben.

Optimierung durch weniger Funktionsaufrufe

Optimierung durch weniger Funktionsaufrufe

Jeder Funktionsaufruf in Ihrem PHP-Script kostet Zeit und damit Performance. Deshalb sollte bei der Programmierung darauf geachtet werden, überflüssige Aufrufe von Funktionen zu vermeiden. Das kann z.B. durch Speicherung des Rückgabewertes einer Funktion in einer Variable geschehen, um die Funktion nur einmalig aufrufen zu müssen und in der Folge auf den Wert der Variable zurückzugreifen. …

Optimierung durch logische Reihenfolge in if-Anweisungen

Optimierung durch logische Reihenfolge in if-Anweisungen

Logische Operatoren in if-Anweisungen werden von PHP beim Interpretieren von links nach rechts ausgewertet. Der Verdacht liegt also nahe, dass sich eine logisch sinnvolle Reihenfolge mit AND bzw. && verknüpfter Bedingungen positiv auf die Performance Ihres PHP-Scripts auswirkt. Wir erwarten also, dass es bei zwei verknüpften Bedingungen innerhalb der if-Anweisung sinnvoller ist, die kostengünstigere Bedingung …

Optimale Anwendung von include und file_exists

Optimale Anwendung von include und file_exists

Vor allem bei PHP-Software, die auf (mehreren) Servern eingesetzt wird, die häufig aktualisiert wird und die Aktualisierung von unterschiedlichen Anwendern durchgeführt wird, kann es vorkommen, dass beim Includieren von Dateien nicht 100%ig sichergestellt ist, dass die einzubindende Datei existiert. Das Includieren einer nicht existenten Datei ist natürlich etwas, was keinesfalls vorkommen sollte. Anhand von Benchmarks …

Länge von Variablennamen beachten zur Code-Optimierung

Länge von Variablennamen beachten zur Code-Optimierung

Eine häufig diskutierte Frage in punkto Performance-Steigerung ist die Länge von Variablennamen. Unter Array-Keys als String oder Ganzzahl haben wir gezeigt, dass kurze Array-Keys schneller von PHP verarbeitet werden können als längere. Lässt sich diese Fausregel auch auf Variablennamen übertragen?

PHP-Code einleiten: Shorttag vs.

PHP-Code einleiten: Shorttag vs. <?php

Die beiden gängigsten Varianten, um PHP-Code einzuleiten sind <? und <?php. Immer wieder hört man von Gerüchten, eine Schreibweise wäre falsch oder die andere wäre schneller. Tatsächlich ist es so, dass der Shorttag die Konfigurations-Einstellung PHP short_open_tag als aktiviert voraussetzt. Fakt ist allerdings auch, dass wir seit 2001 beinahe keine Installation von PHP-Software auf einem …

Überprüfen von Strings vor Ersetzen

Überprüfen von Strings vor Ersetzen

Lässt sich wirklich die Performance von PHP-Scripten verbessern, wenn vor dem Ersetzen mit str_replace() geprüft wird, ob der zu ersetzende Teilstring im Gesamtstring enthalten ist? Wir haben diesen weit verbreiteten Optimierungs-Tipp einem Benchmark unterzogen.

Optimierung bei der Suche eines Vorkommnisses im String

Optimierung bei der Suche eines Vorkommnisses im String

Bei der simplen Suche nach Vorkommnis eines Teilstrings in einem Gesamtstring stehen die beiden Funktionen strstr() und strpos bereit. Da strstr() im Erfolgsfall einen String zurückgibt und strpos() eine integere Zahl als Rückgabewert liefert, ist davon auszugehen, dass strpos() die schnellere Variante ist. Wir vergleichen die Ausführzeiten anhand von Benchmarks mit folgenden kleinen PHP-Scripts.

Verwendung von Strings oder Ganzzahlen als Array-Keys

Verwendung von Strings oder Ganzzahlen als Array-Keys

Die schädigenden Auswirkungen von Konstantenmissbrauch bei der Verwendung von Arrays haben wir bereits verdeutlicht. Nun interessiert uns, welche darüber hinausgehenden Möglichkeiten es bei der Wahl von Array-Schlüsseln gibt, um die Performance zu steigern. Können integere Zahlen oder Strings schneller von PHP interpretiert werden und welche Rolle spielt die Zeichenlänge?

Strings vor Zerlegen mit explode durchsuchen mit strpos

Strings vor Zerlegen mit explode durchsuchen mit strpos

Lässt sich die Performance verbessern, wenn ein mit explode() zu zerlegender String zuvor mit strpos() untersucht wird, ob er den von explode() verwendeten Delimiter enthält? Wir haben mehrere kleine Scripte erstellt und sie einem Benchmark-Test unterzogen.

Optimierung durch Zerlegen von Strings mit explode()

Optimierung durch Zerlegen von Strings mit explode()

Soll ein String anhand eines Teilstrings zerlegt und die einzelnen Teilstücke in einem Array gespeichert werden, sind die gängigsten verwendeten PHP-Funktionen split(), preg_split() und explode(). Da split() und preg_split() im Gegensatz zu explode() mit regulären Ausdrücken arbeiten, ist zu erwarten, dass explode() die schnellste Variante ist. Das Beispiel-Script mit split() ist nur der Vollständigkeit halber …

Template laden: include() vs. eval()

Template laden: include() vs. eval()

Über die PHP Template Engine Smarty hinaus gibt es zahleiche Möglichkeiten, die Darstellungsschicht einer Webanwendung mittels PHP zu laden. Neben der Strukturierung bzw. Architektur der Anwendung nach dem Model View Controller-Modell spielt natürlich die Performanz eine gewichtige Rolle bei der Entscheidung für oder gegen die Verwendung bestimmter Frameworks oder eine bestimmte Vorgehensweise.

Nicht benötigte Variablen mit unset löschen

Nicht benötigte Variablen mit unset löschen

Eine häufig gestellte Frage ist, ob das Löschen im Script nicht mehr benötigter Variablen Speicher freisetzt bzw. so viel Speicher freisetzt, dass sich dadurch die Performance eines PHP-Scripts verbessern lässt. Wir haben drei kleine PHP-Scripte programmiert, um die Auswirkungen von unset() auf die Performance zu testen.

for, while und foreach – Performance verbessern mit der richtigen Schleife

for, while und foreach – Performance verbessern mit der richtigen Schleife

Beim Durchlaufen von Arrays bietet PHP unterschiedliche Möglichkeiten. Die richtige Wahl hängt unter anderem davon ab, ob nur auf den Array-Wert oder auch auf den Key zugegriffen werden muss. Während foreach() eine Kopie des Arrays anfertigt, muss bei while()-Schleifen der „Zeiger” mit reset() zurückgesetzt werden. Die for()-Schleife zum Durchlaufen von Arrays ist nur dann sinnvoll …

Die Optimierungs-Tipps werden ständig um neue Benchmarks inklusive Auswertung erweitert. Es lohnt sich also, diese Seite zu abonnieren oder gelegentlich zu besuchen.