Heim > Artikel > Backend-Entwicklung > Ist PHP7 so großartig (horizontaler Vergleich von PHP7.1 und PHP5.6)
Empfehlung (kostenlos): PHP7
PHP7 kommt
PHP7 ist nun offiziell seit anderthalb Jahren auf dem Markt, als es auf den Markt kam, angeblich um ein Vielfaches schneller Die Geschwindigkeit und Effizienz dieser Art von Open-Source-Framework oder -System, das auf PHP7 läuft, ist um ein Vielfaches gestiegen. Sowohl die Medien als auch die Entwickler schüren das Feuer. Nein, sie sollten voll des Lobes sein.
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 -v PHP 7.1.5 (cli) (built: May 13 2017 23:36:41) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
PHP5:
# /usr/bin/php -v PHP 5.6.30 (cli) (built: Jan 19 2017 22:31:39) Copyright (c) 1997-2016 The PHP Group Zend 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-Datenbankbetriebstestvim test.php
$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.301s user 0m0.239s sys 0m0.050s -------------------------- time /usr/bin/php test.php real 0m0.310s user 0m0.241s sys 0m0.054s -------------------------- time /usr/bin/php test.php real 0m0.289s user 0m0.238s sys 0m0.050sErstellen 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.php real 0m0.087s user 0m0.063s sys 0m0.024s ------------------------------------- time /usr/local/php7/bin/php test.php real 0m0.106s user 0m0.073s sys 0m0.033s -------------------------------------- time /usr/local/php7/bin/php test.php real 0m0.083s user 0m0.061s sys 0m0.022sAuf 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_user Create Table: CREATE TABLE `test_user` ( `uid` int(11) NOT NULL AUTO_INCREMENT, `name` char(100) NOT NULL DEFAULT '', PRIMARY KEY (`uid`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8PHP5 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 pdo pdo_mysql pdo_sqlite /usr/local/php7/bin/php -m|grep pdo pdo_mysql pdo_sqliteDieses 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.
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.php real 0m48.396s user 0m11.149s sys 0m3.998s real 0m51.447s user 0m11.800s sys 0m4.395s real 0m51.517s user 0m11.733s sys 0m4.439sUnter dem Eingangstest können Sie sehen, dass es keinen großen Unterschied zwischen PHP und PHP7 gibt, PHP7 jedoch immer noch geringfügig ist etwas schneller.
real 0m47.900suser 0m9.875s sys 0m4.130s real 0m46.977s user 0m9.760s sys 0m3.983s real 0m50.010s user 0m10.268s sys 0m4.307s
PHP5-Version:
time /usr/bin/php ./public/index.php real 0m0.036s user 0m0.026s sys 0m0.010s real 0m0.038s user 0m0.026s sys 0m0.012s real 0m0.041s user 0m0.032s sys 0m0.009s
PHP7-Version:
time /usr/local/php7/bin/php ./public/index.php real 0m0.027s user 0m0.021s sys 0m0.005s real 0m0.027s user 0m0.018s sys 0m0.009s real 0m0.025s user 0m0.023s sys 0m0.002s
Verwenden Sie die PHP7-Version im thinkphp-Framework und die Leistung Die Verbesserung entspricht in etwa der von PHP5, der 4-fachen 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.php real 0m0.538s user 0m0.463s sys 0m0.072s real 0m0.454s user 0m0.386s sys 0m0.065s real 0m0.387s user 0m0.331s sys 0m0.055s
time /usr/local/php7/bin/php ./public/index.php real 0m0.150s user 0m0.123s sys 0m0.024s real 0m0.137s user 0m0.105s sys 0m0.031s real 0m0.123s user 0m0.096s sys 0m0.026sSchreiben Sie die Testlogik in die Indexmethode:
time /usr/bin/php ./public/index.php real 0m0.104s user 0m0.081s sys 0m0.022s real 0m0.148s user 0m0.122s sys 0m0.025s real 0m0.122s user 0m0.100s sys 0m0.021sPHP5-Version
time /usr/local/php7/bin/php ./public/index.php real 0m0.079s user 0m0.064s sys 0m0.015s real 0m0.081s user 0m0.067s sys 0m0.014s real 0m0.067s user 0m0.054s sys 0m0.013sPHP7-Version
Route::get('/', 'UserController@index');
Das obige ist der detaillierte Inhalt vonIst PHP7 so großartig (horizontaler Vergleich von PHP7.1 und PHP5.6). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!