Brüder teilen nützliche Informationen für PHP-Meister: 50 Details, die Sie lesen müssen
1. Verwenden Sie einfache Anführungszeichen anstelle von doppelten Anführungszeichen, um Zeichenfolgen einzuschließen. Da PHP nach Variablen in Zeichenfolgen sucht, die von doppelten Anführungszeichen umgeben sind, ist dies in einfachen Anführungszeichen nicht möglich. Hinweis: Nur Echo kann dies tun, es ist eine „Funktion“, die mehrere Zeichenfolgen als Parameter annehmen kann (Anmerkung: PHP-Handbuch Es wird gesagt, dass Echo ist eine Sprachstruktur, keine echte Funktion, daher wird die Funktion in doppelte Anführungszeichen gesetzt).
2. Wenn Sie eine Klassenmethode als statisch definieren können, versuchen Sie, sie als statisch zu definieren, und ihre Geschwindigkeit erhöht sich um fast das Vierfache.
3. Die Geschwindigkeit von $row[‘id’] ist siebenmal so hoch wie die von $row[id’].
4. Echo ist schneller als print und verwendet mehrere Parameter von echo (Anmerkung: bezieht sich auf die Verwendung von Kommas anstelle von Punkten) anstelle einer Zeichenfolgenverkettung, wie z. B. echo $str1, $str2.
5. Bestimmen Sie die maximale Anzahl von Schleifen, bevor Sie die for-Schleife ausführen. Berechnen Sie stattdessen am besten foreach.
6. Heben Sie die Registrierung nicht verwendeter Variablen, insbesondere großer Arrays, auf, um Speicher freizugeben.
7. Vermeiden Sie die Verwendung von __get, __set, __autoload.
8. require_once() ist teuer.
9. Versuchen Sie, beim Einschließen von Dateien absolute Pfade zu verwenden, da dies die Geschwindigkeit der PHP-Suche nach Dateien in include_path vermeidet und die zum Parsen des Betriebssystempfads erforderliche Zeit kürzer ist.
10. Wenn Sie wissen möchten, wann das Skript ausgeführt wird (Anmerkung: Der Server empfängt die Client-Anfrage), ist es besser, $_SERVER['REQUEST_TIME'] als time()
zu verwenden
11 , Funktionen ersetzen reguläre Ausdrücke, um dieselbe Funktion zu erfüllen.
12. Die Funktion str_replace ist schneller als die Funktion preg_replace, aber die Funktion strtr ist viermal effizienter als die Funktion str_replace.
13. Wenn eine String-Ersetzungsfunktion Arrays oder Zeichen als Parameter akzeptiert und die Parameterlänge nicht zu lang ist, können Sie erwägen, einen zusätzlichen Ersetzungscode zu schreiben, sodass jeder übergebene Parameter ein Zeichen ist, anstatt nur zu schreiben eine Codezeile, um Arrays als Parameter für Abfragen und Ersetzungen zu akzeptieren.
14. Es ist besser, eine selektive Verzweigungsanweisung (Übersetzungsanmerkung: Groß-/Kleinschreibung wechseln) zu verwenden, als mehrere if-else-if-Anweisungen zu verwenden.
15. Die Verwendung von @ zum Blockieren von Fehlermeldungen ist sehr ineffizient, äußerst ineffizient.
16. Aktivieren Sie das mod_deflate-Modul von Apache, um die Browsing-Geschwindigkeit von Webseiten zu verbessern.
17. Die Datenbankverbindung sollte nach Beendigung der Verwendung geschlossen werden und keine langen Verbindungen verwenden.
18. Fehlermeldungen sind teuer.
19. Das Erhöhen lokaler Variablen in einer Methode ist am schnellsten. Fast so schnell wie der Aufruf lokaler Variablen in einer Funktion.
20. Das Erhöhen einer globalen Variablen ist 2-mal langsamer als das Erhöhen einer lokalen Variablen.
21. Das Erhöhen einer Objekteigenschaft (z. B. $this->prop) ist dreimal langsamer als das Erhöhen einer lokalen Variablen.
22. Das Erhöhen einer undefinierten lokalen Variablen ist 9 bis 10 Mal langsamer als das Erhöhen einer vordefinierten lokalen Variablen.
23. Das bloße Definieren einer lokalen Variablen, ohne sie in einer Funktion aufzurufen, verlangsamt ebenfalls die Geschwindigkeit (im gleichen Maße wie das Erhöhen einer lokalen Variablen). PHP wird wahrscheinlich prüfen, ob eine globale Variable vorhanden ist.
24. Methodenaufrufe scheinen unabhängig von der Anzahl der in der Klasse definierten Methoden zu sein, da ich 10 Methoden hinzugefügt habe (sowohl vor als auch nach der Testmethode) und es keine Leistungsänderung gab.
25. Methoden in abgeleiteten Klassen werden schneller ausgeführt als dieselben Methoden, die in Basisklassen definiert sind.
26. Der Aufruf einer leeren Funktion mit einem Parameter dauert genauso lange wie die Durchführung von 7 bis 8 lokalen Variablen-Inkrementierungsoperationen. Ein ähnlicher Methodenaufruf erfordert fast 15 Inkremente lokaler Variablen.
27. Die Zeit, die Apache zum Parsen eines PHP-Skripts benötigt, ist zwei- bis zehnmal langsamer als das Parsen einer statischen HTML-Seite. Versuchen Sie, mehr statische HTML-Seiten und weniger Skripte zu verwenden.
28. Sofern das Skript nicht zwischengespeichert werden kann, wird es bei jedem Aufruf neu kompiliert. Durch die Einführung eines PHP-Caching-Mechanismus kann die Leistung normalerweise um 25 bis 100 % verbessert werden, um den Kompilierungsaufwand zu eliminieren.
29. Versuchen Sie, so viel wie möglich zwischenzuspeichern. Sie können Memcached verwenden. Memcached ist ein leistungsstarkes Speicherobjekt-Caching-System, mit dem dynamische Webanwendungen beschleunigt und die Datenbanklast reduziert werden kann. Das Zwischenspeichern von OP-Codes ist nützlich, damit Skripte nicht für jede Anfrage neu kompiliert werden müssen.
30. Wenn Sie eine Zeichenfolge bearbeiten und überprüfen müssen, ob ihre Länge bestimmte Anforderungen erfüllt, verwenden Sie natürlich die Funktion strlen(). Diese Funktion wird recht schnell ausgeführt, da sie keine Berechnungen durchführt und lediglich die bekannte Zeichenfolgenlänge zurückgibt, die in der zval-Struktur (der in C integrierten Datenstruktur zum Speichern von PHP-Variablen) gespeichert ist. Da strlen () jedoch eine Funktion ist, ist es etwas langsam, da der Funktionsaufruf viele Schritte durchläuft, z. B. Kleinbuchstaben (Anmerkung: Bezieht sich auf den Funktionsnamen in Kleinbuchstaben. PHP unterscheidet nicht zwischen Funktionsnamen in Groß- und Kleinbuchstaben ), Hash-Suche, Wird zusammen mit der aufgerufenen Funktion ausgeführt. In einigen Fällen können Sie den isset()-Trick verwenden, um die Ausführung Ihres Codes zu beschleunigen.
(Beispiele sind wie folgt)
if (strlen($foo)
(Vergleichen Sie mit der folgenden Technik)
if (!isset($foo{5})) { echo „Foo is too short“$$ }
Der Aufruf von isset() ist zufällig schneller als strlen(), da isset() als Sprachkonstrukt im Gegensatz zu letzterem keine Funktionssuche und keine Kleinschreibung von Buchstaben erfordert 31. Beim Erhöhen oder Verringern der Variablen $i ist $i langsamer als $i. Der Unterschied ist spezifisch für PHP und gilt nicht für andere Ändern Sie also bitte nicht Ihren C- oder Java-Code und erwarten Sie, dass er sofort schneller ist. $i ist nicht schneller, da nur 3 Anweisungen (Opcodes) erforderlich sind. Inkrement erstellt tatsächlich eine temporäre Variable, die dann inkrementiert wird, während Pre-Inkrement direkt auf den ursprünglichen Wert erhöht wird, genau wie der PHP-Optimierer. Es ist eine gute Idee, diese Optimierung im Hinterkopf zu behalten, da nicht alle Direktivenoptimierer dies tun Machen Sie dasselbe, und es gibt viele Internetdienstanbieter (ISPs) und Server, auf denen keine Direktivenoptimierer installiert sind.
32. Es muss nicht objektorientiert sein (OOP Object). -orientiert ist oft sehr teuer und jeder Methoden- und Objektaufruf verbraucht viel Speicher
33. Es ist nicht notwendig, Klassen zu verwenden, um alles zu implementieren. Datenstrukturen sind auch nützlich 🎜> 34. Unterteilen Sie die Methoden nicht zu sehr.
35. Bei Bedarf können Sie den Code jederzeit in Methoden aufteilen Verwenden Sie eine große Anzahl integrierter PHP-Funktionen. Wenn der Code viele zeitaufwändige Funktionen enthält, können Sie diese in erweiterter Form implementieren. 38. Profilieren Sie Ihren Code Sie können sehen, wie viel Zeit für welche Teile des Codes aufgewendet wird. 39. mod_zip kann als Apache-Modul verwendet werden, um Ihre Daten sofort zu komprimieren und das Datenübertragungsvolumen um 40 % zu reduzieren Wenn file_get_contents file, fopen, feof, fgets und andere Methodenreihen ersetzt, versuchen Sie, file_get_contents zu verwenden, da dies viel effizienter ist. Beachten Sie jedoch das PHP-Versionsproblem von file_get_contents beim Öffnen einer URL-Datei 🎜> 41 Führe so wenige Dateioperationen wie möglich aus, obwohl die Dateioperationseffizienz von PHP nicht gering ist
42. Optimiere Select-SQL-Anweisungen und führe so wenige Einfügungs- und Aktualisierungsoperationen wie möglich durch (bei der Aktualisierung habe ich es getan). wurde kritisiert);
43. Verwenden Sie PHP-interne Funktionen so oft wie möglich (aber um eine Funktion zu finden, die in PHP nicht existiert, habe ich Zeit verschwendet, die eine benutzerdefinierte Funktion hätte schreiben können. Erfahrungsproblem!) ;
44. Deklarieren Sie keine Variablen innerhalb der Schleife, insbesondere keine großen Variablen: Objekte (das scheint nicht nur ein Problem in PHP zu sein?
45. Mehrdimensionale Arrays Versuchen Sie, nicht zu verschachteln Zuweisungen in Schleifen;
46. Verwenden Sie keine regulären Ausdrücke, wenn Sie die internen String-Manipulationsfunktionen von PHP verwenden können.
47. Foreach ist effizienter. Versuchen Sie, „foreach“ zu verwenden. Ersetzen Sie while- und for-Schleifen ;
48. Verwenden Sie einfache Anführungszeichen anstelle von doppelten Anführungszeichen, um Zeichenfolgen in Anführungszeichen zu setzen.
49. „Verwenden Sie i = 1 anstelle von i = i 1.“ Es entspricht den Gewohnheiten von c/c und ist sehr effizient.“