PHP-Skripts optimieren / Geschwindigkeit erhöhen

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

1 Star2 Stars3 Stars4 Stars5 Stars (Wurde noch nicht bewertet)
Loading...


3 Kommentare zu “PHP-Skripts optimieren / Geschwindigkeit erhöhen”

  1. Danke für den Tipp + Übersetzung, obwohl mir die Original-Version dann doch sicherer ist 🙂 Unsereins kann ja englisch 😉

  2. 🙂 Ich hoffe, ich habe keine Fehler reingemacht…
    Danke für deinen Kommentar 😉

  3. Ich bevorzuge es mehr Server-Power bereitzustellen anstatt Optimierungen vorzunehmen, die den Code ggf. schlechter lesbar machen. Manche der Tipps gehören aber durchaus zum Standardrepertoire guter PHP-Entwickler dazu.

    In vielen Fällen ist mehr Server-Power für den Kunden inzwischen auch günstiger als der Aufwand den der Entwickler betreiben muss. Ich empfehle den Einsatz des Symfony2 Frameworks anstatt Plain-PHP zu entwickeln.

Hinterlasse einen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

»Informationen zum Artikel

Autor: Simon
Datum: 24.10.2008
Zeit: 16:10 Uhr
Kategorien: Wissenswertes
Gelesen: 17787x heute: 3x

Kommentare: RSS 2.0.
Diesen Artikel kommentieren oder einen Trackback senden.

»Mehr zum Thema erfahren

Schlagwörter: , ,

»Meta