Heim  >  Artikel  >  Backend-Entwicklung  >  So verbessern Sie die PHP-Laufgeschwindigkeit

So verbessern Sie die PHP-Laufgeschwindigkeit

小云云
小云云Original
2018-03-21 10:08:193438Durchsuche

In diesem Artikel erfahren Sie hauptsächlich, wie Sie die Ausführungsgeschwindigkeit von PHP verbessern können. Es gibt insgesamt mehr als fünfzig Methoden, die allen helfen können.

1, Wenn Sie die Klassenmethode als statisch definieren können, versuchen Sie, sie als statisch , seine Geschwindigkeit erhöht sich fast 4 Mal.
2, $row['id'] Die Geschwindigkeit von beträgt $row[id' ] ist 7 Mal.
3, Echo ist schneller als Drucken und verwenden Sie Mehrere Parameter des Echos
(Anmerkung: bezieht sich auf die Verwendung von Kommas anstelle von Punkten ) Ersetzen Sie die Zeichenfolgenverkettung, z. B. echo$str1,$str2.
4 Bestimmen Sie die maximale Anzahl von Schleifen, bevor Sie die for -Schleife ausführen. Berechnen Sie am besten nicht den Maximalwert jede Schleife. Verwenden Sie stattdessen
foreach .
5 Deregistrieren Sie nicht verwendete Variablen, insbesondere große Arrays, um Speicher freizugeben.
6, vermeiden Sie die Verwendung von __get, __set, __autoload.
7, require_once() ist teuer.
8, schließen Sie Dateien so weit wie möglich ein, da dadurch die Notwendigkeit von PHP Gehen Sie zu include_path , um die Datei schneller zu finden, und die zum Parsen des Betriebssystempfads erforderliche Zeit wird kürzer.

9
, Wenn Sie wissen möchten, wann die Ausführung des Skripts beginnt(Anmerkung: Das heißt, der Server empfängt den Client Anfrage ) Zeit, die Verwendung von
$_SERVER['REQUEST_TIME']
ist besser als time( ) .
10
, Funktionen ersetzen reguläre Ausdrücke, um dieselbe Funktion zu vervollständigen.
11
, str_replace Funktion ist schneller als preg_replace Funktion, aber strtr ist viermal effizienter als die Funktion str_replace . 12

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 Ersetzungsabschnitt zu schreiben . Kodieren Sie so, dass jeder übergebene Parameter ein Zeichen ist, anstatt nur eine Codezeile zu schreiben. Akzeptieren Sie Arrays als Parameter für Abfrage und Ersetzung.
13

, verwenden Sie die selektive Verzweigungsanweisung
(Anmerkung: Groß-/Kleinschreibung wechseln) ist besser als die Verwendung mehrerer if, else if -Anweisungen. 14
, die Verwendung von
@ zum Blockieren von Fehlermeldungen ist sehr ineffizient, äußerst ineffizient. 15, öffnen Sie das mod_deflate -Modul von Apache , Sie können das durchsuchen Webseite effizienter beschleunigen.
16 Die Datenbankverbindung sollte geschlossen werden, wenn die Verwendung beendet ist.
17 Fehlermeldungen sind teuer.
18 Das Erhöhen lokaler Variablen in der Methode ist am schnellsten. Fast so schnell wie der Aufruf lokaler Variablen in einer Funktion.
19 Das Erhöhen einer globalen Variablen ist 2 mal langsamer als das Erhöhen einer lokalen Variablen.
20, eine Objekteigenschaft erhöhen (z. B.: $this->prop++) ist 3 mal langsamer als das Inkrementieren einer lokalen Variablen.
21, Das Erhöhen einer undefinierten lokalen Variablen ist langsamer als das Erhöhen einer vordefinierten lokalen Variablen9 auf 10 Mal.
22 Das bloße Definieren einer lokalen Variablen, ohne sie in einer Funktion aufzurufen, verlangsamt ebenfalls die Geschwindigkeit ( Entspricht dem Erhöhen einer
lokalen Variablen
). PHP wird wahrscheinlich prüfen, ob globale Variablen vorhanden sind.
23, Methodenaufrufe scheinen unabhängig von der Anzahl der in der Klasse definierten Methoden zu sein, da ich ( vor dem Testen die Methode Danach )hinzugefügt
und
10 Methoden hinzugefügt, aber es gibt keine Änderung in der Leistung.
24, Methoden in abgeleiteten Klassen werden schneller ausgeführt als dieselben Methoden, die in Basisklassen definiert sind.
25 Der Aufruf einer leeren Funktion mit einem Parameter dauert genauso lange wie die Ausführung von 7 bis 8 lokale Variableninkrementoperationen
Mal. Ein ähnlicher Methodenaufruf erfordert nahezu
15 Inkrementierungsoperationen für lokale Variablen.
26, Apache braucht länger zum Parsen eines PHP -Skripts als Das Parsen einer statischen HTML -Seite ist um 2 bis 10 langsamer.
Verwenden Sie so oft wie möglich statische
HTML--Seiten und verwenden Sie weniger Skripte.
27, Sofern das Skript nicht zwischengespeichert werden kann, wird es bei jedem Aufruf neu kompiliert. Die Einführung einer Reihe von PHP -Caching-Mechanismen
kann in der Regel
25 % auf 100 % Leistung, um Kompilierungsaufwand zu vermeiden.
28, versuchen Sie, zwischenzuspeichern, Sie können memcached verwenden. memcached ist ein leistungsstarkes Speicherobjekt-Caching-System, kann verwendet werden, um dynamische
Webanwendungen zu beschleunigen und die Datenbanklast zu reduzieren . Das Zwischenspeichern von Opcodes (OP-Code) ist nützlich, damit das Skript nicht für jede Anfrage neu kompiliert werden muss.

29, Wenn Sie eine Zeichenfolge bearbeiten und überprüfen müssen, ob ihre Länge bestimmte Anforderungen erfüllt, verwenden Sie natürlich strlen() Funktion. Diese Funktion wird recht schnell ausgeführt, da sie keine Berechnungen durchführt und lediglich die integrierte Zahl zval -Struktur (C >Verwendete Datenstruktur) zurückgibt um die bekannte Zeichenfolgenlänge zu speichern, die in der PHP
-Variable ) gespeichert ist. Da es sich bei strlen() jedoch um eine Funktion handelt, wird etwas langsam sein, da der Funktionsaufruf viele Schritte durchlaufen muss, beispielsweise Kleinbuchstaben (
Übersetzungshinweis: Dies bedeutet, dass der Funktionsname in Kleinbuchstaben geschrieben ist , PHP
Beim Funktionsnamen wird die Groß-/Kleinschreibung nicht beachtet ), die Hash-Suche wird zusammen mit der aufgerufenen Funktion durchgeführt. In einigen Situationen können Sie den Trick isset()
verwenden, um die Ausführung Ihres Codes zu beschleunigen. Der Aufruf von isset() ist zufällig schneller als strlen(), da sich darin von letzterem unterscheidet isset()
als Sprachkonstrukt bedeutet, dass seine Ausführung keine Funktionssuche und Kleinschreibung erfordert. Das heißt, Sie verbringen tatsächlich nicht viel Aufwand damit, die Stringlänge im Code der obersten Ebene zu überprüfen.
34
, Beim Ausführen des Inkrementierens oder Dekrementierens der Variablen $i , $i++ wird langsamer sein als ++$i . Dieser Unterschied ist PHP -spezifisch und gilt nicht für andere Sprachen. Ändern Sie daher bitte nicht Ihr C
oder Java Code zu erstellen und zu erwarten, dass sie sofort schneller sind, ist nutzlos. ++$i
ist schneller, da nur 3 Anweisungen(Opcodes) , $i++ erfordert 4 Anweisungen. Postfixiertes Inkrement erstellt tatsächlich eine temporäre Variable, die anschließend inkrementiert wird. Das Präfix-Inkrement erhöht direkt um den ursprünglichen Wert. Dies ist eine Form der Optimierung, genau wie das Zend

s
PHP -Optimierer. Es ist eine gute Idee, diese Optimierung im Hinterkopf zu behalten, da nicht alle Befehlsoptimierer die gleiche Optimierung durchführen und es viele Anweisungen gibt, die keine Assembly-Optimierungen haben (ISPs) und Server.
35
, Es ist nicht unbedingt objektorientiert
(OOP), objektorientiert ist oft sehr teuer, jede Methode und Objektaufrufe verbrauchen viel Speicher.
36 Es ist nicht notwendig, Klassen zu verwenden, um alle Datenstrukturen zu implementieren. 37
, Unterteilen Sie die Methoden nicht zu sehr, sondern überlegen Sie genau, welche Codes Sie wirklich wiederverwenden möchten
?38 Bei Bedarf können Sie den Code jederzeit in Methoden aufteilen.
39, versuchen Sie, eine große Anzahl von PHP
integrierten Funktionen zu verwenden.
40 Wenn der Code eine große Anzahl zeitaufwändiger Funktionen enthält, können Sie die Verwendung der Erweiterung C in Betracht ziehen sie umzusetzen.
41, bewerten und prüfen Sie (Profil) Ihren Code. Der Prüfer verrät Ihnen, welche Teile des Codes wie viel Zeit in Anspruch nehmen.
42, mod_zip kann als Apache -Modul verwendet werden, um Ihre Daten sofort zu komprimieren und kann das Datenübertragungsvolumen um
80 % reduzieren.
43, Sie können file_get_contents anstelle von file, fopen, feof, fgets und andere Methodenreihen, probieren Sie aus Verwenden Sie
file_get_contents, da es viel effizienter ist !, aber seien Sie vorsichtig file_get_contents
PHP
Versionsproblem beim Öffnen einer URL -Datei;44
Versuchen Sie, so wenig Dateioperationen wie möglich durchzuführen, obwohl die Dateioperationseffizienz von PHP auch nicht niedrig ist ;45
, optimieren Sie Wählen Sie SQL-Anweisungen aus und führen Sie so wenige Einfügungen, Aktualisierungen wie möglich durch Betrieb;46
, verwenden Sie PHP interne Funktionen(Aber um eine Funktion zu finden, die in PHP nicht existiert, habe ich Zeit verschwendet, die eine benutzerdefinierte Funktion hätte schreiben können, Erfahrung Das Problem ist
!);
47
Deklarieren Sie keine Variablen innerhalb der Schleife, insbesondere keine großen Variablen: Object
( Dies ist nicht der Fall scheint der Fall zu sein. PHP sollte auf die Frage
achten?);
48
, versuchen Sie es nicht Um Schleifen in mehrdimensionale Arrays einzubetten, legen Sie die Zuweisung fest
;49
, verwenden Sie keine regulären Ausdrücke, wenn Sie
PHP verwenden können Interne String-Manipulationsfunktion ;50
,
foreach ist effizienter, versuchen Sie, foreach Anstelle von while und for Schleife;51, verwenden Sie einfache Anführungszeichen. Ersetzen Sie doppelte Anführungszeichenzeichenfolgen
;52,
" durch i+= 1 ersetzt i=i+1, was den Gewohnheiten von c/c++ entspricht und mehr ist effizient ”;53, für
globale Variablen sollten sie unset() bei Verwendung. Verwandte Empfehlungen:

Einige Tipps zur Verbesserung der PHP-Laufgeschwindigkeit geben

Wie man die PHP-Laufgeschwindigkeit verbessert Geschwindigkeit

So verbessern Sie die PHP-Laufgeschwindigkeit

Das obige ist der detaillierte Inhalt vonSo verbessern Sie die PHP-Laufgeschwindigkeit. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn