Maison  >  Article  >  développement back-end  >  Présentation de la comparaison entre php7 et php5

Présentation de la comparaison entre php7 et php5

coldplay.xixi
coldplay.xixiavant
2021-01-15 09:47:231921parcourir

Présentation de la comparaison entre php7 et php5

Recommandé (gratuit) : PHP7

PHP7 était censé être beaucoup plus rapide que l'ancienne version lors de sa première sortie Times, la vitesse et l'efficacité de divers frameworks ou systèmes open source fonctionnant sur PHP7 ont augmenté à plusieurs reprises. Quoi qu'il en soit, les médias et les développeurs attisent les flammes, non, ils devraient être pleins d'éloges.
Je vais juste te regarder t'exhiber tranquillement et ne rien dire.

Généralement, je suis la dernière personne à mettre à niveau les systèmes de téléphonie mobile parce que je ne veux pas tomber dans le piège. Après tout, les systèmes comme iOS et Android auront des bugs, sans parler des langues les plus piratées. dans le monde.

Le moment est venu aujourd'hui de voir si PHP7 est aussi génial que le dit la légende.

Installez deux versions de PHP

http://php.net/ possède déjà la dernière version de PHP7, vous pouvez la télécharger vous-même.
Afin de tester les performances de PHP5 et PHP7 (PHP6 a été abandonné, détresse 1s), j'ai installé deux versions de php dans des répertoires différents.

Le processus d'installation est ignoré, quelle que soit l'installation du code source ou l'installation de l'outil de gestion des packages, rappelez-vous simplement votre propre chemin.

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

Description de l'environnement : Afin d'assurer le meilleur effet de test, ce test a été réalisé directement dans l'environnement de production, qui est plus proche de la situation réelle.
Système d'exploitation : CentOS 7.2 64 bits
Configuration de base : 1 cœur 1 Go 1Mbps
Marque hôte : Tencent Cloud

Bataille entre PHP7 et PHP5

1. Test de script PHP pur

vim 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);}}}

Test de la version PHP5 :

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

Test de la version PHP7 :

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

Il ressort des données que grâce aux tests de scripts PHP purs, on peut voir que les performances de PHP7 ont été améliorées de 3 à 4 fois.

Test de fonctionnement de la base de données 2.php

Nous créons d'abord une table utilisateur :

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

Insérons une donnée dans la table test_user :

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

Créez le script de test de base de données test_db.php et assurez-vous que vos deux versions de PHP ont l'extension PDO installée.

/usr/bin/php -m|grep pdopdo_mysqlpdo_sqlite/usr/local/php7/bin/php -m|grep pdopdo_mysqlpdo_sqlite

PDO est installé sur mes deux versions de PHP (n'utilisez plus l'extension php_mysql, elle est obsolète, PHP7 a été complètement abandonné et mysqli n'est pas recommandé).

Ensuite, nous écrivons un script via PDO pour tester la comparaison des performances de l'exécution sélectionnée 500 000 fois :

$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 PHP5 test_db.php :

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

Test PHP7 test_db.php :

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

Cette fois, le script a exécuté 500 000 requêtes. Le temps d'exécution utilisateur du script exécuté par PHP7 est presque une seconde de moins que celui de PHP5 ! C'est une seconde de moins, pas une milliseconde.

Test du framework 3.PHP

  • thinkphp

Affirmation domestique C'est le framework thinkphp de premier choix, choisissez le dernier thinkphp5. J'ai téléchargé la version thinkphp5.0.9 directement depuis le site officiel.

  • (1) Test d'entrée dans le framework

Test sous PHP5 :

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

Test sous PHP7 :

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

Lors du test d'entrée, vous pouvez voir qu'il n'y a pas beaucoup de différence entre PHP et PHP7, mais PHP7 est encore légèrement plus rapide.

  • (2) Test de logique du framework
    Réutiliser la logique de la première étape à l'entrée du framework :

<?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);}}}}}

Version PHP5 :

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

Version PHP7 :

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

En utilisant la version PHP7 dans le framework thinkphp, l'amélioration des performances est d'environ 4 fois celle de la version PHP5 !

  • laravel

Ensuite, nous testons le framework d'artiste PHP le plus populaire.

  • (1) Test d'entrée dans le framework
    Version PHP5 :

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

Version PHP

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

On peut voir dans Selon le test d'entrée au framework Laravel, il n'y a pas beaucoup de différence de performances entre PHP5 et PHP7, mais même la version la plus rapide de PHP5, 0,081 s, est plus lente que la version la plus lente de PHP7, 0,067 s. Donc PHP7 est encore meilleur.

  • (2) Test de logique du framework
    Essayez d'ajouter un peu de logique, comme thinkphp, pour réutiliser la logique de test.
    Modifiez d'abord le routage laravel et appelez directement la méthode d'index de UserController :

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

Écrivez la logique de test dans la méthode d'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);}}}}

Version PHP5

time /usr/bin/php ./public/index.phpreal    0m0.510suser    0m0.377ssys     0m0.079sreal    0m0.627suser    0m0.447ssys     0m0.091sreal    0m0.519suser    0m0.436ssys     0m0.079s

Version PHP7

time /usr/local/php7/bin/php ./public/index.phpreal    0m0.201suser    0m0.167ssys     0m0.032sreal    0m0.216suser    0m0.174ssys     0m0.040sreal    0m0.169suser    0m0.134ssys     0m0.034s

Performances PHP7 améliorées de 3 à 4 fois

Stress test

1000 requêtes, 50 simultanées

  • Version PHP5 :

Les échantillons triples sont les suivants :

  • Version PHP7 :

Grâce au test de stress, sous la version PHP7, vous pouvez voir que la moyenne du temps de requête individuel et du temps d'achèvement de la requête, ainsi que le temps d'exécution réel de chaque requête de connexion, prennent moins de temps. Le plus important est que l'indice de performance QPS est également supérieur à celui de la version PHP5.

Test de performances Opcache de PHP7

Activer opcache :


Merde ! PHP7 avec opcache activé est en effet sur le point de décoller. Par rapport à PHP7 qui n'a pas été activé, les performances ont été améliorées de plus de dix fois, et par rapport à PHP5, elles se sont améliorées de près de 20 fois ! Demander si tu as peur !

Les données de test de script PHP sont les suivantes :

PHP7 vs PHP5

Processus de test de script php pur, Performances de PHP7 Environ 3 à 4 fois supérieures à celles de PHP5.

Les données du stress test sont les suivantes :

PHP5 vs PHP7 vs PHP7+OPCACHE

Conclusion :

Cet article fait une comparaison simple entre PHP7 et PHP5 Les performances sont en effet améliorées de 3 à 4 fois Que ce soit dans les scripts PHP purs ou dans les frameworks, les performances de PHP7 sont cohérentes.

PHP7 est très rapide, PHP7+OpCache est très rapide, PHP7 est vraiment génial, la nouvelle ère de PHP est arrivée, dépêchez-vous et utilisez-la !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer