Heim >Backend-Entwicklung >PHP-Tutorial >Einführung in neue Inhalte in PHP 7

Einführung in neue Inhalte in PHP 7

WBOY
WBOYOriginal
2016-08-08 09:21:40883Durchsuche

Einführung in neue Inhalte in PHP 7

Obwohl der Sommer 2015 nicht zu heiß ist, ist er im Sommer der Internettechnologie heißer als jedes andere Jahr.
Die schlechten Nachrichten über die aufeinanderfolgenden Misserfolge von NetEase, Alipay, Ctrip und vielen Cloud-Speicherherstellern Ende Mai sind gerade zu Ende. Anfang Juni gab es zwei gute Nachrichten in der Welt der Programmiersprachen Veröffentlichung von Swift 2.0 und Open Source, das andere ist die offizielle Veröffentlichung der Alpha-Version von PHP 7. Bei diesen beiden Großereignissen handelt es sich um historische Ereignisse, die in den entsprechenden Programmiersprachen aufgezeichnet werden können.
Lassen Sie uns vorerst nicht über Swift 2.0 sprechen. Der Schwerpunkt dieses Artikels liegt darauf, allen PHP 7 vorzustellen, das von Bruder Niao und anderen großen Meistern zwei Jahre lang verbessert wurde, um zu sehen, ob es wirklich so dominant ist bereits erwähnt. Außerdem testen wir die Kompatibilität bestehender Software und Erweiterungen.
Die Installation von PHP7 ist wirklich abwärtskompatibel. Laden Sie es herunter, entpacken Sie es, verwenden Sie die vorherigen Konfigurationsbefehle und drücken Sie die Eingabetaste, ohne dass es zu Ungehorsam kommt. Um den Betrieb der bestehenden Umgebung nicht zu beeinträchtigen, wurden alle Verzeichnisse speziell geöffnet.
Die Konfigurationsparameter lauten wie folgt:
--prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysqli --with-pdo-mysql --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
Erstellen Sie nach der Installation einen Softlink:
ln -s /usr/local/php7/bin/php /usr/bin/php7 ln -s /usr/local/php7/bin/php-config /usr/bin/php7-config ln -s /usr/local/php7/bin/phpize /usr/bin/php7ize ln -s /usr/local/php7/sbin/php-fpm /usr/sbin/php7-fpm
php7 -v Wir sahen die bekannte Eingabeaufforderung:
[root@localhost test]# php7 -v PHP 7.0.0alpha1 (cli) (built: Jun 13 2015 11:33:39) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.0.0-dev, Copyright (c) 1998-2015 Zend Technologies
Das erste, was zu tun ist, ist die Leistungsbewertung. Das Bewertungsmodell ist Capital Online Cloud Host, 4-Kern-CPU Intel(R) Xeon(R) CPU E5-2680 0 bei 2,70 GHz, 4G-Speicher und Betriebssystem Centos 6.5.
Ich habe drei Zufallsprogramme geschrieben:
Der erste Absatz generiert ein Array von 600.000 Elementen und bestimmt, ob der Schlüssel existiert, indem er nach dem Schlüssel sucht.
An erster Stelle steht die PHP-Version 5.3.17.
[root@localhost test]# time php search_by_key.php real 0m0.389s user 0m0.337s sys 0m0.051s [root@localhost test]# time php search_by_key.php real 0m0.378s user 0m0.308s sys 0m0.062s [root@localhost test]# time php search_by_key.php real 0m0.378s user 0m0.317s sys 0m0.061s
Die zweite ist die PHP7-Version.
[root@localhost test]# time php7 search_by_key.php real 0m0.139s user 0m0.055s sys 0m0.048s [root@localhost test]# time php7 search_by_key.php real 0m0.089s user 0m0.058s sys 0m0.030s [root@localhost test]# time php7 search_by_key.php real 0m0.097s user 0m0.065s sys 0m0.022s
Sobald es auf den Markt kam, wurde es seinem Ruf gerecht. Die Reaktionszeit wurde unter PHP7 auf 1/4 des Originals reduziert. Wirklich großartig!
Dann muss ich im zweiten Absatz noch zwei weitere versuchen. Es ist immer noch die gleiche Methode wie oben, aber da sie langsamer ist, wird ein Array mit 60.000 Elementen verwendet, um den Wert zu ermitteln.
Der Code lautet wie folgt:
Die Wartezeit fühlt sich immer sehr lang an. Drei Tests dauerten mehr als 75 Sekunden. Als nächstes kommt PHP 7 auf den Markt.
[root@localhost test]# time php7 search_by_val.php real 0m3.439s user 0m3.410ssys 0m0.008s [root@localhost test]# time php7 search_by_val.php real 0m3.426suser 0m3.409s sys 0m0.007s [root@localhost test]# time php7 search_by_val.php real 0m3.616suser 0m3.400s sys 0m0.018s
Verdammt, gibt es welche! Die Geschwindigkeit wurde um fast das Siebenfache erhöht.
Der Autor ist so aufgeregt, dass ich meine Begeisterung nicht ausdrücken kann, und ich habe einen relativ effizienten Primzahlalgorithmus erstellt. Zählen Sie die Anzahl der Primzahlen innerhalb von 2.000.000.
Dieses Mal beginnen wir mit PHP7.
[root@localhost test]# time php7 prime_v3.php 2000000 prime number count under 2000000 is :148933 real 0m1.211s user 0m1.191s sys 0m0.015s [root@localhost test]# time php7 prime_v3.php 2000000 prime number count under 2000000 is :148933 real 0m1.221s user 0m1.207s sys 0m0.010s [root@localhost test]# time php7 prime_v3.php 2000000 prime number count under 2000000 is :148933 real 0m1.220s user 0m1.201s sys 0m0.015s
Die Geschwindigkeit liegt stabil bei 1,2 S
Was PHP 5.3 betrifft, ist der Abstand dieses Mal kleiner als beim letzten Mal, aber die Geschwindigkeit von PHP7 ist auch drei- bis viermal so hoch.
[root@localhost test]# time php prime_v3.php 2000000 prime number count under 2000000 is :148933 real 0m4.425s user 0m4.380s sys 0m0.023s [root@localhost test]# time php prime_v3.php 2000000 prime number count under 2000000 is :148933 real 0m4.457s user 0m4.414s sys 0m0.032s [root@localhost test]# time php prime_v3.php 2000000 prime number count under 2000000 is :148933 real 0m4.464s user 0m4.399s sys 0m0.046s
An dieser Stelle können wir das Problem grundsätzlich erklären. Diese Codes verwenden weder komplexe Funktionsbibliotheken noch erfordern sie viel Netzwerk und E/A, aber ihre Leistung wurde um mindestens das Dreifache optimiert. Das ist wirklich ein historischer Fortschritt. In unseren früheren Leistungsbewertungen wurde die Leistung auf Sprachebene häufig ignoriert. In XHProf gibt es beispielsweise eine spezielle Option, XHPROF_FLAGS_NO_BUILTINS, die verwendet wird, um integrierte Funktionen oder interne Funktionen nicht zu analysieren Array-, Datums- usw. Funktionen. Da in diesem Bereich oft jeder den Raum für Verbesserungen übersieht und sich normale Menschen in diesem Bereich natürlich nicht verbessern können, wurde HHVM erstellt und das heutige PHP 7 inspiriert.
Um den Algorithmus zum Finden von Primzahlen zu erhalten, folgen Sie bitte dem öffentlichen Konto von Youcai.com und geben Sie das Schlüsselwort „Primzahl“ ein, um ihn zu erhalten.
Nach einer Testrunde habe ich mein Interesse geweckt, mehr über PHP 7 zu erfahren. Ich wollte sehen, wie Erweiterungen und einige gängige Frameworks unterstützt werden, also habe ich die folgenden vier Tests durchgeführt.
Das erste ist XHProf, das sich auf die Leistungsoptimierung konzentriert. Es ist immer noch so. Im Jahr 2013 musste ich eine Kopie von Github herunterladen, und das Ergebnis war, dass PHPize in Ordnung war,

Configure in Ordnung war,

Make eine Tragödie war , so scheint es, der Grund, warum die zugrunde liegende Datenstruktur geändert wurde, ist, dass ich mich auf das Upgrade von Bruder Niao freue.

Kann XHProf OneAPM in der Cloud verwendet werden, da XHProf nicht verwendet werden kann? In letzter Zeit wird OneAPM immer häufiger verwendet. Es besteht keine Notwendigkeit, den Code selbst zu vergraben oder zu viel zu konfigurieren. Die kommerzielle Version ist anders. Das Installationsergebnis ist ebenfalls eine Tragödie. Wenn Sie es nicht lösen können, beauftragen Sie Bruder Niao als technischen Berater. Ich garantiere Ihnen, dass Sie es in wenigen Minuten erledigen können.

Was die Erweiterung betrifft, traue ich mich nicht, weiter zu testen. Hier sind zwei häufig verwendete Dinge. Obwohl die Website harmonisiert wurde, weiß es jeder. Das andere ist ThinkPHP, das in China am weitesten verbreitete PHP-Entwicklungsframework. Es ist definitiv die Nummer eins, nicht eines davon. Der Autor ist auch ein Fan von TP.
Sollten wir diese beiden Softwareprogramme für ihre gute Leistung loben? Sollte ich PHP 7 für seine gute Kompatibilität loben? Ich weiß es jedenfalls nicht. Ich habe gesehen, dass es zunächst normal war.

Das WordPress-Backend läuft normal, wenn PHP 7 als FastCGI-Backend verwendet wird.

ThinkPHP neueste Version 3.2.3 läuft normal unter PHP 7.
Okay, ich habe ein Wochenende mit PHP 7 herumgespielt und bin ein Fan von PHP 7 geworden. Ich werde auch weiterhin die chinesische Internet-Technologiebranche erobern, ohne Konkurrenz noch seltener. Ich freue mich auch darauf, dass mehr PHP-Techniker nicht nur eine Sprache und Grammatik lernen, sondern auch auf einem höheren Niveau stehen, White-Box-Betrieb und -Wartung durchführen, sich auf Leistungsoptimierung konzentrieren, Full-Stack-Ingenieure werden, hohe Gehälter verdienen und Weiße heiraten . Reich und schön, verwirklichen Sie Ihr Ideal im Leben.

Referenzquelle:
Einführung in neue Inhalte in PHP 7
http://www.lai18.com/content/434544.html

Das Obige ist eine Einführung in den neuen Inhalt von PHP 7, einschließlich einiger Aspekte des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

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