Heim  >  Artikel  >  Backend-Entwicklung  >  Wir stellen den Vergleich zwischen PHP7 und PHP5 vor

Wir stellen den Vergleich zwischen PHP7 und PHP5 vor

coldplay.xixi
coldplay.xixinach vorne
2021-01-15 09:47:231964Durchsuche

Wir stellen den Vergleich zwischen PHP7 und PHP5 vor

Empfohlen (kostenlos): PHP7

PHP7 soll bei seiner Veröffentlichung um ein Vielfaches schneller sein als die alte Version Wie auch immer, egal was passiert. Sowohl die Medien als auch die Entwickler schüren das Feuer, nein, sie sollten es loben.
Ich werde dir einfach zusehen, wie du dich ruhig verhältst, ohne ein Wort zu sagen.

Im Allgemeinen bin ich der Letzte, der Mobiltelefonsysteme aktualisiert, weil ich nicht in die Falle tappen möchte. Schließlich werden Systeme wie iOS und Android Fehler haben, ganz zu schweigen von den am häufigsten gehackten Sprachen der Welt .

Heute ist es an der Zeit zu sehen, ob PHP7 so großartig ist, wie die Legende sagt.

Installieren Sie zwei PHP-Versionen

http://php.net/ Es gibt bereits die neueste Version von PHP7, Sie können sie selbst herunterladen.
Um die Leistung von PHP5 und PHP7 zu testen (PHP6 wurde aufgegeben, Distressed 1s), habe ich zwei PHP-Versionen in verschiedenen Verzeichnissen installiert.

Der Installationsprozess wird übersprungen, unabhängig von der Installation des Quellcodes oder des Paketverwaltungstools. Merken Sie sich einfach Ihren eigenen Pfad.

PHP7:

# /usr/local/php7/bin/php -vPHP 7.1.5 (cli) (built: May 13 2017 23:36:41) ( NTS )Copyright (c) 1997-2017 The PHP GroupZend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

PHP5:

# /usr/bin/php -vPHP 5.6.30 (cli) (built: Jan 19 2017 22:31:39)Copyright (c) 1997-2016 The PHP GroupZend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

Umgebungsbeschreibung: Um die besten Testergebnisse zu gewährleisten, wurde dieser Test direkt in der Produktionsumgebung durchgeführt, die näher an der realen Situation ist. T Betriebssystem: CentOS 7.2 64 -Bit
Grundkonfiguration: 1 GB 1 GB 1MBPS
SOFO -Marke: Tencent Cloud

Php7 und PHP5 -Konfrontation

1. Aus den Daten geht hervor, dass der reine PHP-Skripttest zeigt, dass die Leistung von PHP7 um das Drei- bis Vierfache verbessert wurde.

2.php-Datenbankbetriebstest

vim test.php

Zuerst erstellen wir eine Benutzertabelle:

$arr = array();for ($i = 0; $i < 500000; $i++) {$arr[$i] = $i;}$tmp = array();foreach ($arr as $i) {if ($i % 2 == 0) {$is_exists = array_key_exists($i, $arr);if ($is_exists) {array_push($tmp, $i);}}}

Fügen Sie ein Datenelement in die test_user-Tabelle ein:

time /usr/bin/php test.php real    0m0.301suser    0m0.239ssys     0m0.050s--------------------------time /usr/bin/php test.phpreal    0m0.310suser    0m0.241ssys     0m0.054s--------------------------time /usr/bin/php test.phpreal    0m0.289suser    0m0.238ssys     0m0.050s

Erstellen Sie das Datenbanktestskript test_db.php und stellen Sie sicher, dass Sie beide PHP-Versionen haben PDO-Erweiterung installiert sind.

time /usr/local/php7/bin/php test.phpreal    0m0.087suser    0m0.063ssys     0m0.024s-------------------------------------time /usr/local/php7/bin/php test.phpreal    0m0.106suser    0m0.073ssys     0m0.033s--------------------------------------time /usr/local/php7/bin/php test.phpreal    0m0.083suser    0m0.061ssys     0m0.022s

Auf meinen beiden PHP-Versionen ist PDO installiert (verwenden Sie die Erweiterung php_mysql nicht mehr, sie ist veraltet, PHP7 wurde komplett aufgegeben und mysqli wird nicht empfohlen).

Als nächstes schreiben wir über PDO ein Skript, um den Leistungsvergleich der ausgewählten Ausführung 500.000 Mal zu testen:

Table: test_userCreate Table: CREATE TABLE `test_user` (`uid` int(11) NOT NULL AUTO_INCREMENT,`name` char(100) NOT NULL DEFAULT &#39;&#39;,PRIMARY KEY (`uid`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8

PHP5 test test_db.php:

insert into test_user (uid,name) values (1,"dada");MariaDB [test]> select * from test_user;+-----+------+| uid | name |+-----+------+|   1 | dada |+-----+------+
PHP7 test test_db.php:

/usr/bin/php -m|grep pdopdo_mysqlpdo_sqlite/usr/local/php7/bin/php -m|grep pdopdo_mysqlpdo_sqlite
Dieses Mal führte das Skript 500.000 Abfragen aus Die Benutzerausführungszeit von Skripten, die von PHP7 ausgeführt werden, ist fast eine Sekunde kürzer als die von PHP5! Es ist eine Sekunde weniger, nicht eine Millisekunde.

3.PHP-Framework-Test

thinkphp

Das Thinkphp-Framework ist definitiv die erste Wahl in China, wählen Sie das neueste thinkphp5. Ich habe die Version thinkphp5.0.9 direkt von der offiziellen Website heruntergeladen.

  • (1) Framework-Eintrittstest

    Test unter PHP5:
$host = "yourHost";$user = "yourUser";$pass = "yourPass";$db   = "test";$port = 3306;try{$dbh = new PDO("mysql:host=$host;dbname=$db", $user, $pass);echo "Connected<p>";}catch (Exception $e){echo "Unable to connect: " . $e->getMessage() ."<p>";}$sql = "select  SQL_NO_CACHE * from test_user;";$tmp = array();for ($i=1; $i<=500000; $i++) {$ret = $dbh->query($sql);foreach ($ret as $row) {$tmp['id']   = $row['id'];$tmp['name'] = $row['name'];}}
Test unter PHP7:

time /usr/bin/php test_db.phpreal    0m48.396suser    0m11.149ssys     0m3.998sreal    0m51.447suser    0m11.800ssys     0m4.395sreal    0m51.517suser    0m11.733ssys     0m4.439s
Unter dem Eingangstest können Sie sehen, dass es keinen großen Unterschied zwischen PHP und PHP7 gibt, PHP7 jedoch schon immer noch etwas schneller.
  • (2) Framework-Logiktest
  • Wiederverwendung der Logik des ersten Schritts am Framework-Eingang:

real    0m47.900suser    0m9.875ssys     0m4.130sreal    0m46.977suser    0m9.760ssys     0m3.983sreal    0m50.010suser    0m10.268ssys     0m4.307s

PHP5-Version:

time /usr/bin/php ./public/index.phpreal    0m0.036suser    0m0.026ssys     0m0.010sreal    0m0.038suser    0m0.026ssys     0m0.012sreal    0m0.041suser    0m0.032ssys     0m0.009s

PHP7-Version:

time /usr/local/php7/bin/php ./public/index.phpreal    0m0.027suser    0m0.021ssys     0m0.005sreal    0m0.027suser    0m0.018ssys     0m0.009sreal    0m0.025suser    0m0.023ssys     0m0.002s
    Verwenden Sie die PHP7-Version im thinkphp-Framework und Die Leistung ist gegenüber der PHP5-Version um etwa das Vierfache verbessert!

  • laravel

Dann testen wir das beliebteste PHP-Künstler-Framework.

  • (1) Framework-Einstiegstest

    PHP5-Version:

    <?phpnamespace app\index\controller;class Index{public function index(){$arr = array();for ($i = 0; $i < 500000; $i++) {$arr[$i] = $i;}$tmp = array();foreach ($arr as $i) {if ($i % 2 == 0) {$is_exists = array_key_exists($i, $arr);if ($is_exists) {array_push($tmp, $i);}}}}}
  • PHP-Version
time /usr/bin/php ./public/index.phpreal    0m0.538suser    0m0.463ssys     0m0.072sreal    0m0.454suser    0m0.386ssys     0m0.065sreal    0m0.387suser    0m0.331ssys     0m0.055s

Wir können sehen, dass es im Framework-Einstiegstest von Laravel keinen großen Leistungsunterschied zwischen PHP5 und PHP7 gibt, aber obwohl PHP5 Die schnellste ist mit 0,081 Sekunden auch langsamer als die langsamste PHP7-Version mit 0,067 Sekunden. PHP7 ist also immer noch besser.

  • (2) Framework-Logiktest
    Versuchen Sie, ein wenig Logik hinzuzufügen, genau wie thinkphp, und verwenden Sie die Testlogik wieder.

    Ändern Sie zunächst das Laravel-Routing und rufen Sie direkt die Indexmethode von UserController auf:

time /usr/local/php7/bin/php ./public/index.phpreal    0m0.150suser    0m0.123ssys     0m0.024sreal    0m0.137suser    0m0.105ssys     0m0.031sreal    0m0.123suser    0m0.096ssys     0m0.026s
Schreiben Sie die Testlogik in die Indexmethode:

time /usr/bin/php ./public/index.phpreal    0m0.104suser    0m0.081ssys     0m0.022sreal    0m0.148suser    0m0.122ssys     0m0.025sreal    0m0.122suser    0m0.100ssys     0m0.021s
PHP5-Version
    time /usr/local/php7/bin/php ./public/index.phpreal    0m0.079suser    0m0.064ssys     0m0.015sreal    0m0.081suser    0m0.067ssys     0m0.014sreal    0m0.067suser    0m0.054ssys     0m0.013s
  • PHP7-Version

    Route::get('/', 'UserController@index');

    Die Leistung von PHP wurde um 3 to verbessert 4 Mal
  • Stresstest

    1000 Anfragen, 50 Parallelität

    PHP5-Version:

    Drei Beispiele sind wie folgt:

    PHP7-Version:

    • Durch den Stresstest können Sie unter der PHP7-Version sehen, dass die durchschnittliche Einzelanforderungszeit, die Anforderungsabschlusszeit und die tatsächliche Laufzeit jeder Verbindungsanforderung weniger Zeit in Anspruch nehmen, und der wichtigste Leistungsindikator ist auch QPS höher als die PHP5-Version.

      Opcache-Leistungstest von PHP7

      Opcache aktivieren:


      Heiliger Mist! PHP7 mit aktiviertem Opcache steht tatsächlich kurz vor dem Durchbruch. Im Vergleich zu PHP7, das nicht aktiviert wurde, hat sich die Leistung um mehr als das Zehnfache verbessert, und im Vergleich zu PHP5 hat sie sich um fast das 20-fache verbessert! Fragen Sie, ob Sie Angst haben!

      PHP-Skripttestdaten sind wie folgt:

      PHP7 vs. PHP5

      Reiner PHP-Skripttestprozess, die Leistung von PHP7 ist etwa drei- bis viermal so hoch wie die von PHP5.

      Die Stresstestdaten lauten wie folgt:

      PHP5 vs. PHP7 vs. PHP7+OPCACHE

      Fazit:

      Dieser Artikel führt einen einfachen Vergleich zwischen PHP7 und PHP5 durch, und die Leistung ist tatsächlich um 3 to verbessert 4 mal, ob in reinem PHP In Skripten oder in Frameworks ist die Hochleistungsleistung von PHP7 konsistent.

      PHP7 ist sehr schnell, PHP7+OpCache ist sehr schnell, PHP7 ist wirklich großartig, die neue Ära von PHP ist angebrochen, beeilen Sie sich und nutzen Sie es!

    Das obige ist der detaillierte Inhalt vonWir stellen den Vergleich zwischen PHP7 und PHP5 vor. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen