PHP7 est-il vraiment si puissant ?
Cela fait un an et demi depuis la sortie officielle de PHP7. Lors de sa première sortie, on disait qu'il était plusieurs fois plus rapide que l'ancienne version. La vitesse et l'efficacité des divers frameworks ou systèmes open source fonctionnant sur PHP7 ont augmenté. plusieurs fois. Quoi qu'il en soit, les médias et les développeurs sont là pour attiser les flammes, non, cela devrait être plein d'éloges. Aujourd'hui, nous allons le tester et voir l'effet.
Cela fait un an et demi depuis la sortie officielle de PHP7. Lors de sa sortie, il était prétendument plusieurs fois plus rapide que l'ancienne version. Divers frameworks ou systèmes open source fonctionnant sur PHP7 ont augmenté leur vitesse. et l'efficacité à plusieurs reprises. Quoi qu'il en soit, que ce soient les médias ou les développeurs qui attisent les flammes, non, ils devraient en faire l'éloge.
Je vais juste te regarder agir calmement et tranquillement sans dire un mot.
En général, 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, des systèmes comme iOS et Android auront des bugs, sans parler des langues les plus piratées au 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/ Il existe 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é, en 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 de packages, rappelez-vous simplement votre propre chemin.
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
Description de l'environnement : Afin de garantir les meilleurs résultats 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
Concurrence 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 version PHP5 :
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.050s
Test de version PHP7 :
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.022s
Il ressort des données que le test de script PHP pur montre 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_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=utf8
Insérez 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 la base de données test_db.php, assurez-vous que vos deux versions de PHP ont l'extension PDO installée.
/usr/bin/php -m|grep pdo pdo_mysql pdo_sqlite /usr/local/php7/bin/php -m|grep pdo pdo_mysql pdo_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.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.439s
Test PHP7 test_db.php:
real 0m47.900s user 0m9.875s sys 0m4.130s real 0m46.977s user 0m9.760s sys 0m3.983s real 0m50.010s user 0m10.268s sys 0m4.307s
Cette fois, le script a exécuté 500 000 requêtes, Le le temps d'exécution par l'utilisateur des scripts exécutés par PHP7 est presque une seconde de moins que celui de PHP5 ! C'est une seconde de moins, pas une milliseconde.
3.Test du framework PHP
thinkphp
Le framework thinkphp est définitivement le premier choix en Chine, choisissez le dernier thinkphp5. J'ai téléchargé la version thinkphp5.0.9 directement depuis le site officiel.
- (1) Test d'entrée au framework
Test sous PHP5 :
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
Test sous PHP7 :
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
Sous le test d'entrée, vous pouvez voir qu'il n'y a pas beaucoup de différence entre PHP et PHP7, mais PHP7 est quand même légèrement un peu plus vite.
- (2) Test de logique du framework
Réutiliser la logique de la première étape à l'entrée du framework :
<?php namespace 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.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
Version PHP7 :
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.026s
Utiliser la version PHP7 dans le framework thinkphp, et les performances l'amélioration est à peu près celle de PHP5 4 fois supérieure à la version !
laravel
Ensuite, nous testons le framework d'artiste PHP le plus populaire.
- (1) Test d'entrée au framework
Version PHP5 :
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.021s
Version PHP
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.013s
Nous pouvons voir que dans le test d'entrée au framework de laravel, il n'y a pas beaucoup de différence de performances entre PHP5 et PHP7, mais même PHP5 est le plus rapide à 0,081 s Il est également plus lent que les 0,067 s les plus lents de la version PHP7. Donc PHP7 est encore meilleur.
- (2) Test de logique du framework
Essayez d'ajouter un peu de logique, tout comme thinkphp, réutilisez 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.php real 0m0.510s user 0m0.377s sys 0m0.079s real 0m0.627s user 0m0.447s sys 0m0.091s real 0m0.519s user 0m0.436s sys 0m0.079s
Version PHP7
time /usr/local/php7/bin/php ./public/index.php real 0m0.201s user 0m0.167s sys 0m0.032s real 0m0.216s user 0m0.174s sys 0m0.040s real 0m0.169s user 0m0.134s sys 0m0.034s
Les performances de PHP7 ont été améliorées de 3 à 4 fois
Apprentissage recommandé :Tutoriel vidéo php
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 hautes performances de PHP7. est cohérent.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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.

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.

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 : 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. Chaque fois que le système redémarre, nous devons exécuter la commande suivante pour modifier les autorisations d'UnixSocket: sudo ...

Causes et solutions pour les erreurs Lors de l'utilisation de PECL pour installer des extensions dans un environnement Docker Lorsque nous utilisons un environnement Docker, nous rencontrons souvent des maux de tête ...

Par rapport à PHP7, PHP8 présente certains avantages et améliorations en termes de performances, de nouvelles fonctionnalités et améliorations de la syntaxe, du système de types, de la gestion des erreurs et des extensions. Cependant, le choix de la version à utiliser dépend de vos besoins spécifiques et des circonstances du projet. Introduction détaillée : 1. Amélioration des performances, PHP8 introduit le compilateur Just-in-Time (JIT), qui peut améliorer la vitesse d'exécution du code ; 2. Nouvelles fonctionnalités et améliorations de la syntaxe, PHP8 prend en charge la déclaration des paramètres nommés et des paramètres facultatifs, création de fonctions L'appel est plus flexible ; des classes anonymes, des déclarations de propriétés de type, etc. sont introduites.
