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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.