PHP Code Optimierung Zurück zur Übersicht
Über den Autor
Willkommen und Hallo zu meinem dritten Tutorial.
Inhalt :
01. Strikte (Un)Gleichheit
02. Anführungszeichen und Variablendeklaration
03. Arrays definieren
04. Kurze Variablennamen
05. Schleifen
06. mysql / mysqli
07. Dateien auslesen
08. Wahrscheinlichkeiten
09. Funktionen in if Abfragen
10. Verschiedenes
Heute will ich euch ein paar Tipps zur Optimierung eures PHP Codes preisgeben.
Beachtet jedoch, dass diese Tipps / Tricks nicht viel bringen. Ja das ist jetzt kein Flax...
Denn was sind schon 30% auf eine einzige Sekunde?
Ein anderer Ansatz ist jedoch, was ist wenn ich 1000 User habe?
Und die nur 5 % weniger Zeit brauchen: 1000 User * 3 Sekunden = 3000 Sekunden = 50 Minuten
Also 50 Minuten gesamt Ersparnis
.
Es ist zwar nicht ganz realistisch, da ja nicht nur ein User zur Zeit auf das System zugreift, aber man weißt halt, dass man Zeit sparen kann.
Ihr solltet aber zunächst große Bilder komprimieren, unnötigen Code löschen, Abfragen optimieren, ...
Danach könnt ihr Codeoptimierung betreiben.
01. Strikte (Un)Gleichheit
Wenn 2 Werte vom gleichen Typ sind, dann nutzt lieber die strikte (Un)Gleichheit.
<?php $ErsteZahl = 5; $ZweiteZahl = "5"; //Strikte Gleichheit if ($ErsteZahl === $ZweiteZahl) { echo 'Variable vom selben Typ und der selben Art.'; } else { echo 'Variable ist vom selben Typ und derselben Art.'; // Dies wird Ausgegeben } //Strikte Ungleichheit //Strikte Gleichheit if ($ErsteZahl !== $ZweiteZahl) { echo 'Variable ist nicht vom selben Typ und der selben Art.'; } else { echo 'Variable vom selben Typ und derselben Art.'; // Dies wird Ausgegeben } ?>
Hierdurch wird keine Typumwandlung durchgeführt, wie bei zwei Gleichheitszeichen. Man sollte Erfahrungen damit sammeln und nicht drauflos hämmern, denn sonst macht man mehr Code kaputt...
02. Anführungszeichen und Variablendeklaration
Nutzt nur dann Anführungszeichen, wenn sie auch gebraucht werden. Um einer Variable eine Variable zuzuweisen, braucht man keine "" sowie man keine '' oder gar "" braucht um Vars einen numerischen Wert zuzuweisen.
Hier ein paar Beispiele:
<?php $test = 1; //Geht am schnellsten $test = '1'; //Dauert länger $test = "1"; //Dauert am längsten, da der Interprrter guckt ob Variablen hier drin sind, die umgewandelt werden müssten $test2 = 'Text'; $test2 = "Text"; //Dauert am längsten, da der Interprrter guckt ob Variablen hier drin sind, die umgewandelt werden müssten $test3 = $test.' testen '.$test2; //Geht am schnellsten $test3 = "$test".' testen '."$test2"; //Dauert länger $test3 = "$test testen $test2"; //Dauert am längsten ?>
Zu erwähnen ist vielleicht, dass natürlich auch bei Arrays eine klare Trennung benutzt werden muss.
03. Arrays definieren
Um einen Wert in einem Array zu speichern sollte man nur dann array_unshift und push nutze, wenn man es auch wirklich benötigt. Ansonsten sollte man die normale Schreibweise verwenden.
<?php $test[] = 'test'; ?>
04. Kurze Variablennamen
So kürzer die Variablennamen sind, so schneller werden sie verarbeitet, jedoch ist es nicht Sinn der Sache nur abgebrochene Variablennamen zu nehmen, die im nachhinen Niemand mehr versteht. Das Thema ist also mit dem Damoklesschwert zuschneiden.
05. Schleifen
Es gibt einige verschiedene Schleifenarten. Ich sage Pauschal man sollte für Array foreach( as ) nutzen. Und ansonsten for() oder while(). Jedoch gibt es darüber verschiedene Ansichten. Man sollte es selber einmal ausprobieren, denn bisher kenne ich keien Seite die es wirklich plausibel erklären kann. Obwohl diese Benchmarks aufzeigen. Es ist außerdem ratsam vorher den count() in einer Variable zu speichern, als es jedes Mal neu im for oder while Kopfbereich zumachen.
06. mysql / mysqli
Sollte man schon keine mysqli Funktionen nutzen, sollte man zumindest mysql_fetch_assoc() statt mysql_fetch_array() nutzen. Denn bei mysql_fetch_array() werden extra Indexnummern generiert, die ohnehin Niemand braucht.
07. Dateien auslesen
Man sollte um Datein auszulesen immer file_get_contents() nutzen, denn fopen() im Zusammenspiel mit fgets() braucht dafür sehr viel länger.
08. Wahrscheinlichkeiten
Man sollte bei if, elseif und case immer mit den wahrscheinlichsten Werten anfangen, denn so müssen natürlich nicht alle anderen Überprüfungen durchgeführt werden.
09. Funktionen in if Abfragen
Man sollte immer die schneller Funktionsauswertung bei einer oder-Konjunktion nach vorne Stellen, da ja ein true reicht, jedoch natürlich nicht, wenn es sehr viel unwahrscheinlicher ist das dieses True ergibt.
<?php if(slow() == 1 || fast() == 1){echo 'Diese Variante ist zu langsam, schreibe die Funktionen Andersherum';} ?>
10. Verschiedenes
<?php echo $test.$test; //langsammer echo $test,$test; //schneller ?>
true, false, null soll schneller sein, als wenn man es großschreibt.
preg Funktionen sind sehr viel schneller als ereg Funktionen.
++/--$i ist schneller als $i++/-- .
___________________________________________________________________________________________
Ich hoffe das hilft euch ein wenig euren Code zu optimieren.