Heim >Backend-Entwicklung >PHP-Tutorial >Teilen Sie einige Tipps zur Verbesserung der PHP-Laufgeschwindigkeit
1. Code-Optimierung
Bei der Code-Optimierung geht es nicht nur darum, sauberen und klaren Code zu schreiben, sondern den Code bis zu einem gewissen Grad zu vereinfachen. Sie können Zend Optimizer verwenden, um diese mühsamen Aufgaben automatisch zu erledigen. Zend Optimizer ist kostenlos auf der Website von Zend Technologies unter http://www.zend.com/ erhältlich. Sie müssen jedoch der Lizenzvereinbarung zustimmen, da es nicht unter der GPL vertrieben wird. Das Prinzip ist einfach: Es erkennt den von der Zend-Engine generierten Zwischencode und optimiert ihn, um eine höhere Ausführungsgeschwindigkeit zu erzielen.
Nach der Verwendung von Zend Optimizer wird die Ausführungseffizienz komplexer PHP-Quellprogramme sofort deutlich verbessert. Der Nachteil besteht darin, dass die Lesbarkeit des optimierten Codes abnimmt, was die Codeänderung erschwert.
Die Installationsmethode von Zend Optimizer ist sehr einfach. Laden Sie einfach die entsprechende vorkompilierte Version entsprechend der vom Benutzer verwendeten Plattform herunter, fügen Sie die folgenden zwei Codezeilen zur Datei php.ini hinzu und starten Sie den Webserver neu :
zend_optimizer.optimization_level=15
zend_extension=″/path/to/ZendOptimizer.so″
zend_loader.enable=Off
Die zusätzliche dritte Codezeile ist optional, da zend_loader deaktiviert ist Wird die Optimierung beschleunigen. Es ist zu beachten, dass zend_loader nur deaktiviert werden kann, wenn Zend Encoder Runtime nicht verwendet wird.
2. Cache verwenden
Wenn das PHP-Programm groß ist, können Sie die Geschwindigkeit verbessern, indem Sie den Cache verwenden. Es stehen viele Caching-Lösungen zur Verfügung, darunter Zend Cache, APC und Afterburner Cache.
Die oben genannten sind alles „Caching-Module“. Beim ersten Aufruf einer PHP-Datei generiert das Cache-Modul einen Zwischencode aus dem PHP-Quellcode und speichert diesen Zwischencode im Speicher des Webservers. Beim späteren Aufruf dieser Dateien kann der „kompilierte“ Code im Speicher direkt verwendet werden. Diese Methode kann die Leistung der Anwendung wirklich verbessern, da sie den Festplattenzugriff auf ein Minimum reduziert (der Code wurde gelesen und analysiert) und der Code direkt im Speicher ausgeführt wird, wodurch der Server viel schneller auf Anfragen reagiert.
Natürlich überwacht das Caching-Modul auch Änderungen in PHP-Quelldateien und speichert die Seite bei Bedarf erneut zwischen, um zu verhindern, dass Benutzer Seiten erhalten, die noch mit veraltetem PHP-Code generiert wurden. Da Caching-Module die Belastung des Servers erheblich reduzieren und die Antworteffizienz von PHP-Anwendungen verbessern können, eignen sie sich sehr gut für Websites mit hoher Auslastung.
Zend Cache ist eine kommerzielle Software, die von Zend Technologies entwickelt wurde. Nach dem ersten Durchlauf wird die Laufgeschwindigkeit der PHP-Seite sofort deutlich verbessert und der Server verfügt über mehr freie Ressourcen. Der Nachteil ist, dass es nicht kostenlos ist, das Preis-/Leistungsverhältnis aber dennoch sehr hoch ist.
Afterburner Cache ist ein kostenloses Caching-Modul, das von Bware Technologies entwickelt wurde. Die Funktion ist im Grunde die gleiche wie bei Zend Cache, ist jedoch hinsichtlich der Leistungsverbesserung nicht so gut wie Zend Cache.
APC (Alternative PHP Cache) ist ein weiteres kostenloses Caching-Modul, das von Community Connect entwickelt wurde. Die aktuelle Version ist 2.0.4 und kann von http://pecl.php.net/package/APC bezogen werden. Bei Produktanwendungen ist die Leistung sehr stabil und die Reaktionsgeschwindigkeit auf Anfragen kann erheblich verbessert werden.
3. Webseiteninhalt komprimieren
Es gibt einen weiteren wichtigen Faktor, der die Zugriffsgeschwindigkeit der Website beeinflusst, und das ist die Download-Geschwindigkeit. Die Lösung besteht darin, Webinhalte zu komprimieren. Bei Nur-Text-Inhalten kann die HTTP-Komprimierungstechnologie diese auf weniger als 40 % ihrer Originalgröße komprimieren, was zu Einsparungen bei der Datenübertragung von mehr als 60 % führt. Obwohl der Webserver aufgrund der Komprimierung zu einem leichten Anstieg der CPU-Auslastung führt, kann er eine Menge Netzwerk-IO für die Übertragung einsparen.
Gemäß den IETF-Spezifikationen unterstützen die meisten Browser die Verwendung des gzip-Komprimierungsalgorithmus für die Inhaltskomprimierung. Mit anderen Worten, Sie können den Inhalt der Webseite zuerst mit gzip komprimieren und ihn dann an den Client-Browser senden. Der Browser dekomprimiert die Daten automatisch, wenn er sie empfängt, und zeigt dann die Seite an. Dieser Prozess ist für Benutzer völlig transparent. Ebenso gibt es unterschiedliche Methoden zur Komprimierung des Inhalts von Webseiten.
Mod_gzip ist ein Open-Source-Standard-Apache-Modul, auch Internet-Content-Beschleunigungsmodul genannt. Es kann mit Apache kompiliert oder als DSO verwendet werden. Im Vergleich zum normalen Browsing-Prozess können etwa 40 % des Datenverkehrs eingespart werden. Mod_gzip kann nicht nur statische Inhalte wie HTML und XML komprimieren, sondern auch dynamisch generierte Inhalte wie SQL, Java, WML, VRML usw. in Echtzeit auf der Serverseite komprimieren und übertragen 60 %~85 %.
Um den Inhalt dynamischer Webseiten zu komprimieren, können Sie class.gzip auch zum Codieren von .php-Dateien verwenden. class.gzip komprimiert den Inhalt von Webseiten, indem es einige seiner Funktionen am Anfang und Ende der Seite aufruft PHP-Skript. Wenn die gesamte Site eine solche Komprimierung erfordert, können diese Funktionen in auto_prepend und auto_append in der Datei php.ini aufgerufen werden, dies nimmt jedoch einen gewissen Systemaufwand in Anspruch.
PHP4.0.4 führt eine neue Ausgabepufferverarbeitungsmethode ein – ob_gzhandler. Der Unterschied besteht darin, dass sie direkt zur Datei php.ini hinzugefügt werden kann folgt:
output_handler = ob_gzhandler
Dadurch wird die Ausgabepufferungsfunktion von PHP aktiviert und der Inhalt vor dem Senden komprimiert. Wenn Sie es hier nicht festlegen möchten, ändern Sie bei Bedarf einfach die .htaccess-Datei im PHP-Quellprogrammverzeichnis. Die Syntax lautet wie folgt:
php_value output_handler ob_gzhandler
Oder rufen Sie es direkt im PHP-Code auf:
ob_start("ob_gzhandler");
Der Effekt der Ausgabepufferung ist in der Tat ideal und bringt keinen zusätzlichen Systemaufwand mit sich Server. Zu beachten ist, dass Netscape Communicator keine Bildkomprimierung unterstützt. Daher muss die Komprimierung von JPEG- und GIF-Bildern deaktiviert werden, es sei denn, Sie wissen, dass Ihre Besucher den Internet Explorer verwenden.
4 Weitere Tipps
Beim Programmieren können Sie auch einige Tipps verwenden, um PHP zu beschleunigen:
(1) Verwenden Sie i+=1 anstelle von i=i+1, was konsistent ist mit Die c/c++-Gewohnheiten sind relativ effizienter.
(2) Verwenden Sie so oft wie möglich PHP-interne Funktionen.
(3) Wenn Zeichenfolgen in einfachen Anführungszeichen verwendet werden können, versuchen Sie, Zeichenfolgen in einfachen Anführungszeichen zu verwenden. Zeichenfolgen in einfachen Anführungszeichen sind effizienter als Zeichenfolgen in doppelten Anführungszeichen.
(4) Verwenden Sie foreach anstelle von while, um das Array zu durchlaufen. Die Effizienz von foreach ist deutlich höher als die der while-Schleife, und es ist nicht erforderlich, die Reset-Funktion aufzurufen.