40 Tips for optimizing your php Code

Reinhold Weber hat in seinem Blog 40 Tipps zur Optimierung von PHP Code veröffentlicht. Auch wenn es tatsächlich 43 sind…

Auf jeden Fall sind einige Tipps sehr interessant. Bei Gelegenheit gleich mal die gröbsten Schnitzer in meinen Scripten entfernen., sofern sie denn vorhanden sind 😉 Für die Zukunft werde ich die meisten Tipps sicher beherzigen…

13 Kommentare

  1. Tobi

    Generell nicht schlecht, aber einige der Punkte sind wohl eher was für Erbsenzähler:

    -If a method can be static, declare it static. Speed improvement is by a factor of 4.

    -echo is faster than print.

    -$row[’id’] is 7 times faster than $row[id]

    -Incrementing a global variable is 2 times slow than a local var.

    Das mag sein, aber der Geschwindigkeitszuwachs wird wohl nicht wirklich spührbar sein. Bei Perl gibts auch etliche solcher Dinge, die man aber genauso gut lassen kann, da der Hauptteil der Zeit woanders verbraten wird.

  2. schoeppchen

    Gerade

    $row[’id’] is 7 times faster than $row[id]

    ist aber alleine schon eine Frage sauberen Programmierens und sollte alleinde deswegen schon mit Anführungszeichen notiert sein (was man auch sehr schön sieht man mal die Notices anschaltet um zu schauen was PHP alles „guessen“ muss um darauf zu kommen, was man ihm sagen will).

  3. Jens

    Hi hab die Seite per Zufall gefunden, aber das ist wirklich ein netter Artikel!

    Zu 2. echo is faster than print.
    Das stimmt es hat rund ~20% Geschwindkeitsvorteil, aber derZeitaufwand der in echos oder prints geht ist minimal.
    Buffering (ob_start() & ob_end_clean()) ist natürlich bei beiden Methoden zu empfehlen.

    Zu 28: Da bin ich mir nicht sicher! Zumindest hatte ich es hier andergelesen: http://benchmark.nophia.de/benchmarks-textverarbeitung-k-2-single-quotes-oder-double-quotes-teil-2-b-4.html#this_run

  4. Tobi

    Entschuldigung, aber 6,751μs versus 7,730μs. … Jep, das rockt >:)

  5. Sascha Göbel

    Naja, auf die Masse gesehen macht das schon einen Unterschied.

    Und zu dem Benchmark … ob das wirklich so representativ ist möchte ich bezweifeln, denn man kann die Verkettung mittels echo ja immer noch mit Komma machen und sich den Punkt sparen. Das sollte noch ein ganzes Stück schneller sein.

  6. Jens

    Ja, im Grunde hat Tobi schon recht oft lohnt es sich nicht und die Zeit kann man auch in die Optimierung von DB-Queries oder seinen Algorithmen investieren oder man lässt es und ist zufrieden…

    Scheiss Erbsenzählerei 🙂

    1.000.000 Durchläufe
    echo „TEST „.$a.“ TEST „.$b.“ TEST“; = 3.45079779625s
    echo „TEST “ , $a , “ TEST “ , $b , “ TEST“; = 3.1026570797s
    print „TEST „.$a.“ TEST „.$b.“ TEST“; = 3.3463101387s

  7. Sascha Göbel

    Fast ne halbe Sekunde gespart … wenn das mal nix ist!

  8. Jens

    äh…ja…

  9. Daniel Zohm

    Ich finde ehrlich gesagt auch eine minimale Erparnis schon nicht schlecht. Die Masse macht es da wirklich.

    Teilweise gehören die Tipps aber wirklich zu einem sauberen Stil und sollten meiner Meinung nach auf alle Fälle beherzigt werden. Natürlich kann das jeder wie er will machen, ich werde mir sicher ein paar angewöhnen 🙂

  10. Casa

    Also wenn man mal von Skript-Kiddie-Seiten mit 100-10000 Zugriffen pro Tag absieht, machen die Optimierungen durchaus Sinn.

    Rechnen wir mal:

    1000000 zugriffe auf ein Skript. Jedesmal 0,5s Rechenzeit gespart.

    Macht 500000s Rechenzeit gespart >:). Jetzt mal GANZ grob gerechnet. Das finde ich doch schon erstrebenswert! Man darf nicht nur die Rechenzeit wärend des Durchlaufs betrachtet. Wichtiger ist die Betrachtung im gesamten System und über alle Zugriffe auf bspw. ein Skript. Ok, bei High-Traffic-Seiten wird hoffentlich noch intelligentes caching (Auf Bytecodebene) und andere Hilfmittel benutzt 😉

    Ich finde eine halbe sekunde ersparnis ernorm!

  11. Tobi

    Eine Halbe Sekunde zu sparen ist erstrebenswert, aber dieser Rechnung kann ich nicht ganz folgen. Selbst wenn ich 1Mio Zugriffe einbeziehe… in einem Script 1Mio Echo-Befehle kommen einfach nicht vor. Und wenn doch liegt doch der Optimierungsbedarf darin, genau das zu korrigieren. Von daher ist das wiklich eine ganz grobe Rechnung 😉

  12. Sascha Göbel

    Selbst wenn es nur 100 – 1000 echo Aufrufe pro Script sind, macht das auf die Masse ja trotzdem noch einen Unterschied.

    Wir erinnern uns: Wenn wir von jeder Überweisung nur einen halben Cent abzweigen, sind das Millionen 😉

Schreibe einen Kommentar

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