« Bewerbung bei einer Spedition | Main | Internetseitenbetreiber sollen Kopie ihrer Seiten an Nationalbibliothek liefern »
PHP-Skripts optimieren / Geschwindigkeit erhöhen
Von Simon | Oktober 24, 2008
Tags: geschwindigkeit, optimieren, PHP
Wenn man ein Projekt fertiggestellt hat, geht es meistens an das Optimieren des Codes. Auch wenn man eigentlich schon während der Programmierung auf Performance achten sollte, gibt es auch einige Dinge, die man nachträglich noch ändern kann.
Auf reinholdweber.de werden über 40 Tipps und Tricks für höhere Ausführungszeiten vorgestellt. Da die Seite auf Englisch ist, fasse ich hier die wichtigsten zusammen.
- Methoden, die unabhänig von Instanzen einer Klasse sind, sollten als statische Methoden deklariert werden. Das erhöht die Geschwindigkeit laut reinholdweber.de um den Faktor 4.
- In For-Schleifen sollte der 2. “Parameter” keine Berechnung des Maximalwertes aller Durchläufe enthalten. Das sollte nämlich schon vorher geschehen. Man legt am besten eine Variable an: $max = count($bla) und verwendet dann $max in der Schleife.
- Große Arrays sollten mit unset gelöscht werden, wenn sie nichtmehr benötigt werden. Das spart RAM!
- Obwohl Interzeptormethoden (__get, __set, __call) sehr langsam sind, setze ich sie trotzdem ein. Denn die Vorteile, die die Methoden bieten, rechtfertigen auch die langsamere Ausführungszeit.
- __autoload() verringert die Geschwindigkeit enorm. Angesichts der Tatsache, dass __autoload aber sehr nützlich ist und viel Arbeit spart, macht mir das nichts aus.
- Bei includes oder requires sollte man absolute Pfadangaben machen, da das OS dann nicht erst den Pfad auflösen muss. Außerdem macht das die Fehlersuche einfacher.
- Man sollte wann immer es möglich ist, auf Reguläre Ausdrücke und die preg_-Befehle verzichten und stattdessen auf PHP-Befehle wie strstr oder substr zurückgreifen.
- Datenbankverbindungen sollten nach der Abarbeitung aller Queries geschlossen werden, um den MySQL-Server zu entlasten.
- Der @-Operator zum Unterdrücken von Fehlermeldungen ist nicht nur Pfusch, sondern auch langsam.
- Bei den Key-Angaben von Arrays sollen KEINE Konstanten verwendet werden! $row[id] ist extrem schlecht. Der Key sollte immer ein Integer oder (bei assoziativen Arrays) ein String sein: $row['id']
- Methoden aus Elternklassen laufen nicht so schnell wie die Methoden aus den Kindklassen.
- Das nutzen von ‘ statt ” ist schneller, da PHP bei ‘ nicht nach im String vorhandenen Variablen sucht.
- Strings sollten bei der Ausgabe mit echo mit einem Komma statt einem Punkt verkettet werden.
- ++$i ist schneller als $++
- PHP-Funktionen und Methoden sind immer schneller als eigene Methoden und Funktionen!
Es sollte aber auch gesagt werden, dass langsame Skripts meistens nicht die Ursache für langsame Seiten sind. Oftmals ist es die schlechte Hardware oder die Anbindung des Servers ans Internet.
Hierzu gibt es einen weiteren guten (englischen) Artikel: http://phplens.com/lens/php-book/optimizing-debugging-php.php
- Index / Schlüssel von Arrays um 1 erhöhen/verschieben
- Wordpress-Blog optimieren
- Objektorientierte Blätterfunktion (OOP-PageBrowser) in PHP 5
- Das Registry-Pattern in PHP 5 (OOP)
- PHP: Ersten Buchstaben eines Strings groß schreiben
Kategorien: PHP | 2 Kommentare »














Oktober 29th, 2008 at 17:02
Danke für den Tipp + Übersetzung, obwohl mir die Original-Version dann doch sicherer ist
Unsereins kann ja englisch
Oktober 29th, 2008 at 17:52
Danke für deinen Kommentar