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…
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.
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).
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
Entschuldigung, aber 6,751μs versus 7,730μs. … Jep, das rockt >:)
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.
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
Fast ne halbe Sekunde gespart … wenn das mal nix ist!
äh…ja…
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 🙂
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!
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 😉
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 😉