Optimierung Ihrer PHP-Scripte

Auf dieser Seite haben wir einige Tipps und Tricks zusammengestellt, die Sie interessieren sollten, wenn Sie sich selbst mit der Programmierung von PHP-Scripten befassen. Erfahrene PHP-Programmierer dürften die Ergebnisse der getesteten Codes nicht überraschen. Programmieranfängern hoffen wir jedoch mit den bereitgestellten Informationen dabei zu helfen, bei der Programmierung von PHP-Scripten von Anfang an auf Optimierung und Performance zu achten.

Zwar ist PHP traditionell eine äußerst fehlertolerante Skriptsprache. Unsaubere Programmierung mag je nach Konfiguration und Level des Fehlers optisch und funktionell ohne Auswirkungen bleiben. Jedoch kosten beispielsweise die Verwendung des @-Operators zur Fehlerunterdrückung oder der „Konstantenmissbrauch” beim Interpretieren Ihres PHP-Scripts unnötig Speicher.

Unbedingt zu vermeidende Fehler und unsauberer Code

Während bei der Verwendung unterschiedlicher Funktionen die Unterschiede teilweise nur marginal sind, sollten folgende Tipps zur PHP-Programmierung unbedingt berücksichtigt werden. Die zu jedem Optimierungs-Tipp angegebenen Benachmark-Ergebnisse verdeutlichen die mögliche Verbesserung der Performance.

Performance-Steigerung durch Vermeidung des @-Operators

Performance-Steigerung durch Vermeidung des @-Operators

Der @-Operator ist nicht nur bei Anfängern der PHP-Programmierung sehr beliebt. Selbst WordPress ist gespickt mit dieser unsauberen Form der Programmierung. Ob Variablen definiert sind oder Dateien existieren muss nicht extra via isset() bzw. file_exists() abgefragt werden. Ein einfaches @-Zeichen vor dem Variablennamen oder der include()-Funktion und schon sind scheinbar alle Probleme gelöst.

Die Existenz von Variablen im PHP-Code beachten

Die Existenz von Variablen im PHP-Code beachten

Je nach Konfigurationseinstellung error_reporting() verursacht die Verwendung nicht existenter Variablen keine Fehlermeldung bzw. keine Ausgabe einer Notiz (englisch: „Notice”) beim Ausführen des entsprechenden PHP-Codes im Browser. Das ändert jedoch nichts an der Tatsache, dass es wertvolle Ausführzeit und damit Performance kostet, wenn PHP beim Interpretieren Ihres Codes eine Variable verarbeiten soll, der zuvor kein Wert …

Performance verbessern durch Vermeidung von Konstantenmissbrauch

Performance verbessern durch Vermeidung von Konstantenmissbrauch

Der Missbrauch von Konstanten bei Array-Keys ist vor allem bei Anfängern ein beliebter Fehler. Da abhängig von error_reporting()-Level bzw. der display_errors()-Einstellung auf den meisten Servern von Webhosting-Anbietern beim Ausführen des PHP-Codes keine Fehlermeldung ausgegeben wird, fällt der Fehler oftmals gar nicht auf. Zur Verbesserung der Performance sollte er jedoch in jedem Fall vermieden werden nach …

Benchmark-Ergebnisse und Tipps zur Optimierung Ihres PHP-Codes

Die Wahl der richtigen bzw. optimalen Funktion mag in Einzelfällen keine entscheidenden Auswirkungen auf die Performance haben. Wird jedoch beispielsweise auf Ihrer Startseite mit mehreren tausend Besuchern pro Minute eine Funktion eingesetzt, die durch eine „kostengünstigere” ersetzt werden kann, so lohnt sich die Mühe der Code-Anpassung, um die Performance zu verbessern und Ressourcen zu sparen.

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

PHP-Code einleiten

Die beiden gängigsten Varianten, um PHP-Code einzuleiten sind und . 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 die Konfigurations-Einstellung PHP short_open_tag als aktiviert voraussetzt. Fakt ist allerdings auch, dass wir seit 2001 mit keine Installation von PHP-Software auf einem Server vorgenommen haben, …

Ü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 …

Bei den angeführten Beispielen haben wir uns auf die Ladezeit-Messung mit dem Apache HTTP server benchmarking tool beschränkt. Interessant sind jedoch auch die aufwendig zu ermittelnden Auswirkungen auf die CPU-Auslastung sowie der Speicherverbrauch. Für Letzteren ist u.a. die PHP-Funktion memory_get_usage() hilfreich.

Sie möchten Ihre PHP-Scripte von Werbe-Markt.de optimieren lassen? Vor allem bei der Umstellung auf neue PHP-Versionen werden alte, unsauber programmierte PHP-Scripte nicht nur langsamer, sondern weisen ggf. sogar Fehlfunktionen auf. Senden Sie uns eine Kontakt-Anfrage, wenn Sie die Optimierung Ihrer PHP-Scripte fachmännisch und zukunftssicher von Werbe-Markt.de durchführen lassen möchten.