Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Programmoptimierung

PHP-Programmoptimierung

WBOY
Freigeben: 2016-08-08 09:28:39
Original
967 Leute haben es durchsucht

PHP-Programmoptimierung

Es gibt viele Inhalte zur PHP-Programmoptimierung. Im Folgenden geht es um die Optimierung des PHP-Codes, die Optimierung des Sitzungsmechanismus, die Verwendung von Caching-Middleware und das PHP-Code-Caching-System (hauptsächlich APC-Beschleunigung).

PHP-Code optimieren

Erst wenn wir genügend Fähigkeiten beherrschen, können wir den PHP-Code optimieren. Nachdem die Programmcodierungsarbeiten abgeschlossen sind, bitten wir normalerweise einige erfahrenere Programmierer, den Code zu überprüfen, die Qualität des Programms zu bewerten und Punkte zu identifizieren, die einer Optimierung bedürfen. Dieser Prozess wird auch Codeüberprüfung genannt. Im Folgenden stellen wir einige gängige PHP-Programmiertechniken sowie einige Optimierungsprinzipien vor, die beim Codeüberprüfungsprozess eine Rolle spielen können.

1. Aktualisieren Sie auf die neueste PHP-Version

Sie müssen wissen, dass sich die Programmiersprache selbst ständig weiterentwickelt und neue Versionen der Sprache normalerweise Fehlerbehebungen und Leistungsoptimierungen in der Sprache selbst enthalten. Daher müssen wir als Profis regelmäßig auf das Erscheinen neuer Versionen achten. Für PHP können wir die erforderlichen Informationen von der offiziellen Website http://php.net/ erhalten.

2. Reduzieren Sie include und require

Obwohl PHP selbst bestimmte Optimierungen für dieses Problem vorgenommen hat, kann es bei starker Beanspruchung zu Leistungseinbußen kommen. Dieser Prozess kann durch die Installation der APC-Beschleunigerkomponente erleichtert werden.

3. Verwenden Sie lokale Variablen anstelle globaler Variablen

Lokale Variablen sind am schnellsten, insbesondere in einigen Schleifenlogiken verwenden wir lokale Variablen, um so viele Operationen wie möglich auszuführen. Der Grund, warum globale Variablen nicht verwendet werden, liegt zum einen an Problemen mit der Betriebseffizienz und zum anderen daran, dass globale Variablen nicht einfach zu verwalten sind.

4. Versuchen Sie, statische Funktionen oder Methoden zu verwenden

Wenn möglich, sollten wir versuchen, die Funktion oder Methode als statisch zu definieren, dh die statische Markierung hinzuzufügen. damit es möglich ist Es wird die Geschwindigkeit der Programmausführung um ein Vielfaches erhöhen.

5. Geben Sie nicht verwendete Variablen oder Ressourcen frei

Verlassen Sie sich nicht zu sehr auf den Speicherrecyclingmechanismus von PHP. Einige nicht verwendete Variablen oder Ressourcen im Programm sollten in einem freigegeben werden rechtzeitig Zum Freigeben können wir die unset-Methode verwenden oder sie direkt auf null setzen. Darüber hinaus sollten Sie besonders aufmerksam sein, wenn Sie auf andere Ressourcen im Zusammenhang mit Komponenten stoßen, z. B. Datenbankverbindungen.

6. Verwenden Sie einfache Anführungszeichen anstelle von doppelten Anführungszeichen, um Zeichenfolgen einzuschließen

In PHP werden Zeichenfolgen normalerweise in einfache Anführungszeichen eingeschlossen, da die Verwendung von doppelten Anführungszeichen zusätzliche einfache Anführungszeichen verursachen kann sind effizienter als doppelte Anführungszeichen, wenn es um Zeichen-Escape-Zeichen oder sogar um die Parsing-Logik von Variablen geht.

7. Die Verwendung des @-Symbols zum Blockieren von Fehlern verlangsamt die Ausführungsgeschwindigkeit des Skripts

Der Einfachheit halber verwenden einige Programmierer gerne @, um Fehlermeldungen zu blockieren. aber dieser Ansatz Es verlangsamt die Ausführungsgeschwindigkeit des Skripts und wird nicht empfohlen.

8. Überbeanspruchen Sie PHPs OOP nicht

Um Code besser verwalten zu können, neigen größere PHP-Programme mittlerweile dazu, objektorientiertes Denken (OOP) zu verwenden Da Objekte im Programm-Framework jedoch normalerweise mehr Speicher belegen, können zu viele Klassenbibliotheken eine große Anzahl von Include- und Require-Vorgängen generieren, was zu zusätzlichem Overhead führt. Daher müssen wir OOP-Ideen entsprechend der tatsächlichen Situation angemessen nutzen. Dieses Problem kann auch durch den Einsatz von APC-Beschleunigungskomponenten gemildert werden.

9. Verwenden Sie abstrakte Klassen anstelle von Schnittstellen

Die Kosten für die Verwendung von Schnittstellen in PHP sind sehr hoch. Versuchen Sie daher, sie beim Programmieren zu vermeiden. Normalerweise können wir stattdessen abstrakte Klassen für eine ähnliche Logikkapselung verwenden.

10. Die Verwendung regulärer Ausdrücke ist teuer

Obwohl die reguläre Ausdrucksfunktion der PHP-Sprache sehr leistungsfähig ist, müssen wir wissen, dass ihre Ausführungskosten auch hoch sind Wenn möglich, sollten Sie stattdessen versuchen, die Zeichenverarbeitungsfunktionen von PHP zu verwenden.

11. Komprimieren Sie die Daten, die gespeichert werden müssen, so weit wie möglich

Die Speicherung aller Daten erfordert Speicherplatzressourcen des Systems, daher sollten die Daten komprimiert werden so viel wie möglich Führen Sie eine Komprimierung durch, um Systemspeicherressourcen zu sparen. Wenn wir beispielsweise eine IP-Adresse speichern, können wir die IP-Adresse mithilfe der Funktion ip2long zur Speicherung in ganzzahlige Daten umwandeln und sie dann über die Funktion long2ip wiederherstellen. Darüber hinaus können Sie mit gzcompress und gzuncompress auch einige große Datenmengen komprimieren und dekomprimieren.

12. Verwenden Sie effizientere Anweisungen

Die Effizienz von PHP-Programmieranweisungen variiert ebenfalls. Nachfolgend vergleichen wir die wichtigeren Anweisungen, die Sie später schreiben müssen Achten Sie beim Codieren darauf.

  • Die Effizienz von switch...case in der Branch-Anweisung ist höher als if...elseif...else
  • Die Effizienz von foreach in der Loop-Anweisung ist am höchsten , für Sekunde, und while ist die niedrigste
  • Die Schreibmethode von ++$i (Präfix) in der Overlay-Anweisung ist schneller als $i++ (Suffix)

13. Verwenden Sie effizientere Funktionen

PHP verfügt über eine sehr umfangreiche Funktionsbibliothek, und dieselbe Funktion kann mit verschiedenen Funktionen ausgeführt werden. Allerdings ist auch die Betriebseffizienz verschiedener Funktionen unterschiedlich. Bei der Verwendung müssen wir darauf achten. Im Folgenden vergleichen wir einige häufig verwendete Funktionen.

  • Die Zeichendruckfunktion echo ist schneller als print
  • Die Zeichenersetzungsfunktion strtr ist am effizientesten, str_replace an zweiter Stelle, prea_replace die reguläre Ersetzung am niedrigsten
  • Die Array-Abfragefunktion array_key_exists ist die effizienteste. Schnell, inset. Zweitens ist in_array die niedrigste.
  • Get remote network file cUrl hat die höchste Effizienz, Bedienbarkeit und Flexibilität, fsockopen steht an zweiter Stelle, file_get_contents und fopen sind am niedrigsten

Obwohl bei einigen Programmen, deren Logik nicht sehr komplex ist, die Auswirkung jeder Codeoptimierung möglicherweise nicht sehr offensichtlich ist, ist es sehr wichtig, gut zu entwickeln Programmiergewohnheiten, was auch für normale Programmierer und erfahrene Programmierer gilt. Die obige Liste umfasst nicht alle PHP-Programmierkenntnisse, und die Beherrschung dieser Fähigkeiten kann nicht über Nacht abgeschlossen werden. Dem sogenannten Lernen sind keine Grenzen gesetzt. Nur durch ständiges Zusammenfassen und Ansammeln im Lern- und Praxisprozess können die eigenen Programmierfähigkeiten verbessert werden zur nächsten Etage.

PHP-Optimierungssitzungsmechanismus

Einfach ausgedrückt: Sitzung ist wie eine globale Variable, die jedem Benutzer beiliegt und zum Speichern aller Informationen verwendet wird, die der Benutzer auf dem Server speichern muss. Tatsächlich können die Funktionen der Sitzungssitzung in der Systemkonfigurationsdatei php.ini festgelegt werden. Natürlich können wir sie auch mit der Funktion ini_set (ini_get zum Abrufen der Konfiguration) festlegen.

Es wird im Allgemeinen nicht empfohlen, auto_start zu aktivieren (session.auto_start: ob es automatisch aktiviert werden soll), da das Erstellen einer Sitzung normalerweise nur Systemressourcen verbraucht Verwenden Sie Session, wenn wir es benötigen. Wenn die Funktion session_start verwendet wird, wird die Funktion Session geöffnet. Zweitens muss die Gültigkeitsdauer der Sitzung entsprechend den Systembedingungen bestimmt werden. Wenn es zu lang ist, kann es aufgrund zu vieler Sitzungsdaten zu Lastproblemen kommen. Wenn es zu kurz ist, kann es auch zu Leistungsproblemen aufgrund zu häufiger Sitzungserstellung kommen. Die standardmäßig gültige Zeit des Systems beträgt 1440 Sekunden, was 24 Minuten entspricht. In tatsächlichen Projekten legen wir diese Zeit normalerweise zwischen 1 und 8 Stunden fest. Beachten Sie auch, dass PHP Die von Session verwendete Standardspeichermethode ist die Dateispeicherung. Wir können die erforderliche Speichermethode über die Auswahlzeile „session.save_handle“ auswählen. Die Verwendung der Dateispeichermethode ist jedoch nicht förderlich für die Erweiterung der Systemarchitektur Bei Projekten wird die Sitzungsrückrufschnittstelle häufig über die Methode session_set_save_handler festgelegt, um die Logik der Sitzung zu steuern. Zu den gängigen Speichermedien gehören Datenbanken, verteilte Cache-Server usw.

Ideen zur PHP-Sitzungsoptimierung. Erstens kommt es bei jeder Erstellung einer Sitzung zu einem Ressourcenverbrauch. Verwenden Sie nicht selbstverständlich die Methode session_start in der globalen Konfigurationsdatei. Zweitens müssen Sie sicherstellen, dass Sie bei jeder Sitzungsanforderung die Sitzungs-ID mitbringen, denn wenn der Server die Sitzungs-ID nicht erhalten kann, erstellt er eine neue. Versuchen Sie außerdem bei der Auswahl einer Speichermethode, schnelle Speichermedien wie Cache-Server Memcache(d), Redis usw. zu verwenden.

Caching-Middleware verwenden

Caching-Middleware verwenden Es erscheint Die abgefragten Informationen werden im Serverspeicher zwischengespeichert, um die Datenbank zu ersetzen und die meisten Abfrageanforderungen zu bewältigen, wodurch der Druck auf die Daten verringert wird. Derzeit sind Memcache und Redis die in der Branche am häufigsten verwendeten Cache-Middleware (für den Aufbau der Umgebung, die Verwendung und die Unterschiede zwischen den beiden suchen Leser bitte nach Netzwerkressourcen, ich werde sie hier nicht im Detail vorstellen). Abhängig vom Effekt, der in tatsächlichen Projekten verwendet wird, kann Caching-Middleware normalerweise die Abfragegeschwindigkeit des Servers erheblich verbessern. Darüber hinaus kann der Redis-Cache auch als Schreibwarteschlange verwendet werden, d. h. die Daten werden zunächst in den Redis-Cache geschrieben und dann auf die Daten übertragen.

Beschleunigen Sie mit APC

Mit der Entwicklung von Netzwerkanwendungen Durch die kontinuierliche Entwicklung wird der Logikcode immer komplexer, und der Ressourcenverbrauch für die Einführung eines riesigen Klassenbibliothekscodes in das Framework ist ebenfalls relativ hoch, sodass er wieder online geht. Wir müssen auch etwas Caching auf Codeebene verwenden, um die Codeausführung zu beschleunigen.

APC (Alternative PHP Cache, PHP-Code-Caching-System) ist eine sehr gute PHP-Code-Caching-Lösung, die PHP durch Zwischenspeichern und Optimieren von PHP-Zwischencode (Opcode) verbessert Ausführungseffizienz.

Hinweis: Kostenlose PHP-Code-Caching-Technologien auf dem gleichen Niveau wie APC umfassen eAccelerator und XCache (Installation und Unterschiede: http:// blog.csdn.net/mossader/article/details/6343354)

Datenübertragung optimieren

1. Optimieren Sie das JSON-Protokoll

In den allgemeinen Entwurfsprinzipien von Kommunikationsprotokollen: Vielseitigkeit und Indirektheit sind das Wichtigste. Die Wahl des JSON-Protokolls als Grundlage des Programmanwendungsprotokolls ist selbst eine Optimierung des Systems.

2. Gzip-Komprimierung verwenden

Daten aus dem Service Der End-to-Client-Prozess muss ein komplexes Netzwerk durchlaufen. Daher gibt es zwei Hauptfaktoren, die die Netzwerkübertragung beeinflussen: der eine ist die Netzwerkqualität und der andere die Größe der Daten selbst. Für das HTTP-Protokoll ist gzip einer der aktuellen Mainstream-Komprimierungsalgorithmen. Die meisten HTTP-Server unterstützen diesen Komprimierungsalgorithmus (Informationen zur Konfiguration des gzip-Komprimierungsfunktionsmoduls für Apche und Nginx finden Sie selbst in den Netzwerkressourcen).

Fortsetzung folgt...

Hinweis: Dieser Artikel ist ein Auszug aus Kapitel 9: Serverseite von „Best Practices für Android und PHP-Entwicklung“ optimiert (mit Löschungen)

Das Obige hat die Optimierung von PHP-Programmen vorgestellt, einschließlich einiger Aspekte davon. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage