Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Grafik- und Texterklärung zur PHP7-Nutzungserfahrung: stark verbesserte Leistung, starke Kompatibilität und unzureichende Erweiterungsunterstützung

Detaillierte Grafik- und Texterklärung zur PHP7-Nutzungserfahrung: stark verbesserte Leistung, starke Kompatibilität und unzureichende Erweiterungsunterstützung

黄舟
黄舟Original
2017-07-27 14:55:101674Durchsuche

In diesem Artikel werden hauptsächlich die Leistungsverbesserung, die starke Kompatibilität und die unzureichende Erweiterungsunterstützung der PHP 7-Installation und -Nutzung vorgestellt (seien Sie vorsichtig, wenn Sie PHP aktualisieren). Dies ist sehr praktisch und wertvoll

Mit der Veröffentlichung von PHP 7 sind die Leistung und Kompatibilität von PHP 7 in den letzten Tagen zu einem heißen Diskussionsthema geworden. Die hohe Leistung von PHP 7 hat bei vielen Menschen Interesse geweckt um es auszuprobieren, und einige sind „Early Adopters“. „Freunde haben PHP 7 bereits in der Produktionsumgebung angewendet. Gleichzeitig wurden auch beliebte Anwendungen wie LNMP zeitnah aktualisiert und unterstützen nun PHP 7.

Wenn es um PHP-Leistungsprobleme geht, muss ich das HHVM erwähnen, das ich zuvor geteilt habe. Dies ist ein von Facebook entwickeltes Tool zur Verbesserung der PHP-Leistung. Es verwendet Just-In-Time (JIT)-Kompilierung, um PHP zu konvertieren Code in eine Art Bytecode. Während des eigentlichen Testprozesses war HHVM ein qualitativer Sprung bei der Verbesserung der PHP-Leistung. Die effiziente PHP-Laufumgebung verbesserte die PHP-Leistung um mehr als das Neunfache.

In den letzten Jahren wurde PHP wegen seines Leistungsengpasses vielfach kritisiert. Viele Entwickler haben PHP aufgegeben und sind geflohen. Die perfekte Leistung von HHVM wirkt sich sehr nachteilig auf die Entwicklung von PHP aus. PHP 7 ist die Antwort der PHP-Community auf HHVM. Die offizielle Release-Version von PHP 7 hat die PHP-Leistung erheblich verbessert. Tatsächliche Tests haben ergeben, dass die Leistung von PHP 7 in einigen Fällen die von HHVM übertrifft.

Dieser Artikel vermittelt Ihnen die Installations- und Nutzungserfahrung von PHP 7. Freunde, die die Leistung von PHP 7 unbedingt erleben möchten, sollten vor dem offiziellen Upgrade von PHP ein paar weitere Programmkompatibilitätstests durchführen ist zu 99 % abwärtskompatibel, aber um auf der sicheren Seite zu sein, müssen wir dennoch vorsichtig sein, wenn wir es in Produktionsumgebungen anwenden.

PHP 7-Installations- und Nutzungserfahrung: stark verbesserte Leistung, starke Kompatibilität, unzureichende Erweiterungsunterstützung, seien Sie vorsichtig beim Upgrade von PHP

1 die hohe Leistung von PHP 7 Mehrere wichtige Punkte

Im Vergleich zur vorherigen PHP-Version kann man sagen, dass PHP 7 einen qualitativen Leistungssprung aufweist, aber wie das Sprichwort sagt: „Ein gutes Pferd gehört zu einem.“ „Ein guter Sattel, ein gutes Auto gehört zu einem Segel“, wenn Sie die Leistungsvorteile von PHP 7 voll ausschöpfen möchten, müssen Sie auch unter folgenden Gesichtspunkten vorbereitet werden: (Dieser Teil stammt vom PHP7-Kernentwickler, Autor von Yaf, Yar, Yac und andere Projekte: Laruence).

1. Denken Sie daran, Zend Opcache zu aktivieren. Hinzufügen:


2 Bei Verwendung eines neuen Compilers wird GCC 4.8 oder höher empfohlen, da nur GCC 4.8 oder höher PHP 7 Global Register für Opline- und Execute_Data-Unterstützung aktiviert, was zu einer Leistungsverbesserung von 5 % führt.

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1"

3. Durch die Aktivierung von HugePage wird PHP 7 schneller. Aktivieren Sie dann HugePages im System und aktivieren Sie dann CentOS 6.5 als Beispiel: $sudo sysctl vm.nr_hugepages=512, 512 reservierten großen Seitenspeicher zuweisen:


Dann fügen Sie Folgendes hinzu: opcache.huge_code_pages=1 zu php.ini, so zuerst , PHP verwendet große Speicherseiten, um seine eigenen Textsegmente und großen Speicherzuweisungen zu speichern, wodurch TLB-Fehler reduziert und die Leistung verbessert werden.

$ cat /proc/meminfo | grep Huge
AnonHugePages:  106496 kB
HugePages_Total:   512
HugePages_Free:   504
HugePages_Rsvd:    27
HugePages_Surp:    0
Hugepagesize:    2048 kB
4 Aktivieren Sie den Opcache-Dateicache Der Opcode-Cache in einer externen Datei führt zu einer erheblichen Leistungsverbesserung. Die Methode besteht darin, Folgendes zu php.ini hinzuzufügen: opcache.file_cache=/tmp. Auf diese Weise speichert PHP einige Opcode-Binärexportdateien im Verzeichnis /tmp, die während des gesamten PHP-Lebenszyklus vorhanden sein können. Wenn Ihr PHP speziell für die Bereitstellung eines Projekts konzipiert ist, beispielsweise nur für WordPress, Drupal oder etwas anderes, können Sie versuchen, PGO zu verwenden, um PHP zu verbessern und gezielt die Leistung Ihres Projekts zu verbessern. Nehmen wir insbesondere WordPress 4.1 als Optimierungsszenario ... Zuerst beim Kompilieren von PHP: $ make prof-gen.

6. Verwenden Sie dann Ihr Projekt, um PHP beispielsweise für WordPress zu trainieren:$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php > ;/ dev/null, das heißt, php-cgi lässt die WordPress-Homepage 100 Mal ausführen und generiert dabei einige Profilinformationen. Abschließend:

7. Das PHP7, das Sie zu diesem Zeitpunkt kompilieren, ist die kompilierte Version mit der höchsten Leistung, die auf Ihr Projekt zugeschnitten ist.


$ make prof-clean
$ make prof-use && make install

2. PHP 7-Installation und -Kompilierung

1. PHP 7 offizielle Website:

2 -on-Fähigkeit Freunde, die stark sind, können direkt auf die offizielle Website gehen, um PHP 7 herunterzuladen und es dann manuell zu bearbeiten und zu installieren. Wenn Sie es gewohnt sind, das LNMP-Ein-Klick-Installationspaket des lnmp.org-Webmasters zu verwenden, können Sie die Veröffentlichung der Betaversion von LNMP 1.3 ausprobieren, die PHP7-Unterstützung hinzugefügt hat: eine Methode zur reibungslosen Migration der Website zum LNMP- oder LAMP-Website-Builder Umfeld.

3. Das von OneinStack bereitgestellte LNMP-Installationspaket verfügt bereits über eine Ein-Klick-Installation für PHP 7. Bei der Ausführung des Skripts können Sie auswählen, dass für PHP 7 derzeit nur die offizielle Zend Opcache-Erweiterung zur Installation verfügbar ist . .

4. OneinStack hat PHP 7 erfolgreich installiert.

5. Dies ist die PHP 7-Informationsanzeige.

6. Dies ist das Opcache-Kontrollfeld für PHP 7, das von OneinStack bereitgestellt wird.

3. Leistungsvergleich zwischen PHP 7 und alten Versionen von PHP und HHVM

1 Entwickler Verglichen mit der Leistung von PHP 5.6 unter beliebten Programmen wie WordPress und Drupal ist es offensichtlich, dass sich die Leistung von PHP 7 stark verbessert hat.

2. Bei Programmen wie WordPress verbessert PHP 7 nicht nur die individuelle Ausführungsgeschwindigkeit, sondern je länger WordPress auf PHP 7 läuft, desto größer ist die Leistungsverbesserung.

3. Wie oben erwähnt, hat die Leistungsverbesserung von PHP 7 die von HHVM in einigen Aspekten übertroffen. Dies ist PHP 5.6, das von der offiziellen Website von zend.com bereitgestellt wird 7. Vergleichsergebnisse der HHVM-Ausführungseffizienz unter verschiedenen Programmen.

4. Testen Sie die Ausführungseffizienz von PHP 5.6, PHP 7 und HHVM auf dem professionellen Open-Source-E-Commerce-System Magento. PHP 7 ist doppelt so schnell wie PHP 5.6 und der Speicherverbrauch ist 30 % geringer als PHP 5.6.

5. Die Effizienz beim Testen von PHP 7 auf Drupal 8 ist die schnellste und übertrifft HHVM.

6 Beim WordPress-Test wurde festgestellt, dass PHP 5.6 100 MB Speicher zur Ausführung benötigt, während PHP 7 nur 25 MB benötigt.

7. In Bezug auf die unterschiedlichen Programmausführungsgeschwindigkeiten ist PHP 7 offensichtlich führend. Ruby 2.1, Python 2.7.8 und Perl 5.18.4 liegen allesamt hinter PHP 7 .

4. PHP 7-Leistungstestbericht

1. Es ist unbegründet, wie hoch die Leistung des PHP 7-Laufprogramms ist ? Wolltuch? Hier verwendet der Stamm ein brandneues WordPress als Testobjekt. Der unter PHP 7 ausgeführte WordPress-Homepage-Ladezeittest zeigt 0,029 Sekunden und der Speicher beträgt 3,39 MB.

2. Dies ist die Seitenladezeit derselben WordPress-Seite unter PHP 5.6: 1,955 Sekunden, und der belegte Speicher beträgt 3,92 MB. Aus Datensicht hat PHP 7 PHP 5.6 vollständig besiegt.

3. Die Effizienz der Ausführung von WordPress in PHP 7 wurde im Vergleich zur Vorgängerversion tatsächlich qualitativ verbessert. Um die Leistung von PHP 7 vollständig zu verstehen Webleistung entsprechend dem Druck des Website-Servers Die Testmethode besteht darin, mit Webbench 200 und 400 Verbindungen in 10 Sekunden zu simulieren, und die Geschwindigkeit beträgt mehr als 8000 Seiten/Minute.

4. Zu diesem Zeitpunkt beträgt die Systemlast des VPS-Servers 3,49.

5. Erhöhen Sie die Anzahl der simulierten Verbindungen auf 1600, und die Geschwindigkeit bleibt über 8000 Seiten/Minute.

6. Zu diesem Zeitpunkt beträgt die Systemauslastung des VPS-Servers 17, was etwas schwierig sein dürfte.

7. Erhöhen Sie die Anzahl der simulierten Verbindungen auf 5000, die Geschwindigkeit beträgt 4800 Seiten/Minute und die Geschwindigkeit beginnt sich zu verlangsamen.

8. Zu diesem Zeitpunkt beträgt die Systemlast des VPS-Servers 23 und der Server ist überlastet.

9 Um die Ausdauergrenze von PHP 7 auf diesem VPS-Host zu testen, simulierte Webbench 10.000 Verbindungen, um 20 Sekunden lang kontinuierlich auf den Server zuzugreifen.

10. Zu diesem Zeitpunkt beträgt die Systemlast des VPS-Servers fast 90, was das Limit erreichen sollte, aber der Server stürzt immer noch nicht ab.

11. Schauen wir uns als Nächstes die Stresstestergebnisse desselben konfigurierten VPS-Hosts an, auf dem WordPress ausgeführt wird. Verwenden Sie zunächst Webbench, um 200 und 400 Verbindungen in 10 Sekunden zu simulieren Die Geschwindigkeit beträgt 3600 Seiten/Minute, was halb so langsam ist wie beim obigen PHP 7-Test.

12. Dies ist die Systemlast von 200 und 400 Verbindungen im PHP 5.6-Test. Sie hat 10 erreicht, was deutlich höher ist als die im PHP 7 getesteten 3,49 Umfeld.

13. Im PHP 5.6-Test wurde die Anzahl der simulierten Verbindungen auf 1000 und 2000 erhöht. Zu diesem Zeitpunkt ist die Geschwindigkeit auf 1600 Seiten/Minute gesunken Auch die Zahl der erfolgreichen Verbindungen ist auf 500 gesunken. Beim Test mit PHP 7 waren es rund 2.700.

14 Zu diesem Zeitpunkt hat die Systemlast 17 erreicht.

15. Testen Sie mit Webbench die Anzahl der Verbindungen in PHP 5.6 auf 10.000 und greifen Sie innerhalb von 20 Sekunden kontinuierlich auf den Server zu. Zu diesem Zeitpunkt bleibt der Test ohne Ergebnisse hängen.

16. Die Systemlast des VPS-Servers hat hier mehr als 1.000 erreicht und der Server ist abgestürzt.

17. Die WordPress-Website unter PHP 5.6 ist nicht verfügbar.

5. PHP 7-Kompatibilitätsprobleme

1. Derzeit unterstützen inländische Discuz und andere PHP 7 und PHP-Erweiterungen nicht Nicht nur der offizielle Opcache kann verwendet werden, sondern auch andere wie eAccelerator, xcache, memcached usw. Sie können jederzeit auf die erweiterte Supportliste achten:

2. Nachher Beim Testen läuft PHP 7 mit WordPress. Kein Problem.

3. Die Installation des WordPress-Plugins unter PHP 7 ist kein Problem.

4. PHP 7 weist möglicherweise Inkompatibilitätsprobleme mit einigen Funktionen, Operatoren usw. auf, aber 99 % der Programme verwenden diese möglicherweise nicht.

6. Zusammenfassung der Installations- und Nutzungserfahrungen von PHP 7

1 Eine Überraschung nach der Verwendung von PHP 7 ist, dass die Leistung von PHP 7, wie von ausländischen Entwicklern getestet, einfach ist Es ist mit HHVM vergleichbar. Da HHVM einen Just-in-Time-Compiler (Just In Time) verwendet, um PHP-Code in Maschinenanweisungen zu kompilieren, müssen viele PHP-Programme verbessert werden, wenn sie auf HHVM ausgeführt werden.

2. PHP 7 verfügt über die ultrahohe Leistung von HHVM und gleichzeitig über den Vorteil der PHP-Abwärtskompatibilität. Ich glaube, dass PHP 7 in naher Zukunft von immer mehr Menschen erkannt und akzeptiert wird Zukunft. Obwohl es derzeit nicht viele Erweiterungen wie Caching und Beschleunigung gibt, die PHP 7 unterstützen, ist es nur eine Frage der Zeit, dass immer mehr Entwickler in die Reihen der PHP 7-Entwicklung einsteigen werden.

Das obige ist der detaillierte Inhalt vonDetaillierte Grafik- und Texterklärung zur PHP7-Nutzungserfahrung: stark verbesserte Leistung, starke Kompatibilität und unzureichende Erweiterungsunterstützung. 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