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

Présentation de la comparaison entre php7 et php5

Jan 15, 2021 am 09:47 AM
php5 php7

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
Copier après la connexion

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
Copier après la connexion

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);}}}
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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 |+-----+------+
Copier après la connexion

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
Copier après la connexion

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'];}}
Copier après la connexion

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
Copier après la connexion

Test PHP7 test_db.php :

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

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
Copier après la connexion

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
Copier après la connexion

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);}}}}}
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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');
Copier après la connexion

É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);}}}}
Copier après la connexion

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
Copier après la connexion

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
Copier après la connexion

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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la différence entre php5 et php8 Quelle est la différence entre php5 et php8 Sep 25, 2023 pm 01:34 PM

Les différences entre php5 et php8 concernent les performances, la structure du langage, le système de types, la gestion des erreurs, la programmation asynchrone, les fonctions de bibliothèque standard et la sécurité. Introduction détaillée : 1. Amélioration des performances. Par rapport à PHP5, PHP8 présente une énorme amélioration des performances. PHP8 introduit un compilateur JIT, qui peut compiler et optimiser certains codes d'exécution à haute fréquence, améliorant ainsi la vitesse d'exécution. PHP8 introduit de nouvelles structures et fonctions de langage. PHP8 prend en charge les paramètres nommés, permettant aux développeurs de transmettre les noms des paramètres au lieu de l'ordre des paramètres, etc.

Comment installer l'extension mongo dans php7.0 Comment installer l'extension mongo dans php7.0 Nov 21, 2022 am 10:25 AM

Comment installer l'extension mongo dans php7.0 : 1. Créez le groupe d'utilisateurs et l'utilisateur mongodb ; 2. Téléchargez le package de code source mongodb et placez le package de code source dans le répertoire "/usr/local/src/" ; Entrez le répertoire « src/ » ; 4. Décompressez le package de code source ; 5. Créez le répertoire de fichiers mongodb ; 6. Copiez les fichiers dans le répertoire « mongodb/ » 7. Créez le fichier de configuration mongodb et modifiez la configuration.

Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Comment résoudre le problème lorsque php7 détecte que le port TCP ne fonctionne pas Mar 22, 2023 am 09:30 AM

En php5, nous pouvons utiliser la fonction fsockopen() pour détecter le port TCP. Cette fonction peut être utilisée pour ouvrir une connexion réseau et effectuer certaines communications réseau. Mais en php7, la fonction fsockopen() peut rencontrer certains problèmes, comme ne pas pouvoir ouvrir le port, ne pas pouvoir se connecter au serveur, etc. Afin de résoudre ce problème, nous pouvons utiliser la fonction socket_create() et la fonction socket_connect() pour détecter le port TCP.

Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Que dois-je faire si le plug-in est installé dans php7.0 mais qu'il indique toujours qu'il n'est pas installé ? Apr 02, 2024 pm 07:39 PM

Pour résoudre le problème du plugin n'affichant pas installé dans PHP 7.0 : Vérifiez la configuration du plugin et activez le plugin. Redémarrez PHP pour appliquer les modifications de configuration. Vérifiez les autorisations du fichier du plugin pour vous assurer qu'elles sont correctes. Installez les dépendances manquantes pour garantir le bon fonctionnement du plugin. Si toutes les autres étapes échouent, reconstruisez PHP. D'autres causes possibles incluent des versions de plugin incompatibles, le chargement d'une mauvaise version ou des problèmes de configuration PHP.

Comment changer le port 80 en php5 Comment changer le port 80 en php5 Jul 24, 2023 pm 04:57 PM

Comment changer le port 80 dans php5 : 1. Modifiez le numéro de port dans le fichier de configuration du serveur Apache ; 2. Modifiez le fichier de configuration PHP pour vous assurer que PHP fonctionne sur le nouveau port ; 3. Redémarrez le serveur Apache et l'application PHP le fera. commencez à exécuter sur le nouveau port.

Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Guide FAQ de l'environnement serveur PHP : résoudre rapidement les problèmes courants Apr 09, 2024 pm 01:33 PM

Les solutions courantes pour les environnements de serveur PHP consistent à s'assurer que la version correcte de PHP est installée et que les fichiers pertinents ont été copiés dans le répertoire du module. Désactivez SELinux temporairement ou définitivement. Vérifiez et configurez PHP.ini pour vous assurer que les extensions nécessaires ont été ajoutées et configurées correctement. Démarrez ou redémarrez le service PHP-FPM. Vérifiez les paramètres DNS pour les problèmes de résolution.

Comment installer et déployer php7.0 Comment installer et déployer php7.0 Nov 30, 2022 am 09:56 AM

Comment installer et déployer php7.0 : 1. Accédez au site officiel de PHP pour télécharger la version d'installation correspondant au système local ; 2. Extrayez le fichier zip téléchargé dans le répertoire spécifié 3. Ouvrez la fenêtre de ligne de commande et accédez à ; le répertoire "E:\php7" Exécutez simplement la commande "php -v".

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système? Mar 31, 2025 pm 11:54 PM

Comment définir automatiquement les autorisations d'UnixSocket après le redémarrage du système. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

See all articles