


Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)
Nous en savons tellement sur php7 en PHP, je ne sais pas ce que vous savez sur php7, je crois qu'un grand nombre de personnes. ne le fera pas. Si vous connaissez cette partie des connaissances, ne vous inquiétez pas, cet article vous mènera à une compréhension plus approfondie de ce contenu.
Contexte de la recherche sur la technologie PHP7
- Nous devons économiser des coûts dans le contexte de l'augmentation des revenus et de la réduction des dépenses de l'entreprise
- Performances de PHP7 par rapport à l'actuel PHP version 5.X sur Meizu Online Au moins doublé
- Les utilisateurs actifs quotidiens de la communauté connaissent une croissance rapide (le PV quotidien moyen de 15 ans de données a augmenté de 348% par an et l'UV quotidien moyen a augmenté de 112% par an)
- L'environnement général de l'Internet mobile nécessite notre Le programme peut répondre plus rapidement aux demandes des utilisateurs pour répondre à une meilleure expérience utilisateur
- Le désir de connaissance des nouvelles technologies (pour satisfaire un peu un peu de vanité)
Les performances de PHP7 sont faibles Remarque
Impression initiale des performances de PHP7 (3 fois + amélioration par rapport à PHP5)
Comparaison des performances - tri rapide. algorithme (générer aléatoirement 5000 numéros puis trier selon l'algorithme rapide)
PHP5.1 Le temps de réponse moyen d'un tri rapide avec 5000 numéros est de 2587 ms
PHP5.2 La moyenne le temps de réponse du tri rapide avec 5000 nombres est de 2625 ms
PHP5.3 Le temps de réponse moyen du tri rapide avec 5000 nombres est de 2509 ms
PHP5.4 Temps de réponse moyen du tri rapide de 5000 nombres 2339 ms
PHP7.0 5000 nombres temps de réponse moyen de tri rapide 685 ms
2. Comparaison des performances - Page d'accueil WordPress
PHP5.1 Temps de réponse moyen WordPress 505 ms
PHP5.2 Temps de réponse moyen WordPress 521 ms
PHP5.3 Temps de réponse moyen de WordPress 498 ms
PHP5.4 Temps de réponse moyen de WordPress 470 ms
PHP7.0 Temps de réponse moyen de WordPress 158 ms
Comparaison des performances - Flyme Community APP
PHP5.4 Tri rapide de 500 numéros TPS 552
PHP7.0 500 numéros Tri rapide de numéros TPS 3165
Page d'accueil de l'application Flyme Community PHP5.4 TPS 1535
Page d'accueil de l'application Flyme Community PHP7.0 TPS 1975
Page de liste de la section Flyme Community APP PHP5.4 TPS 2237
Page de liste de la section Flyme Community APP PHP7.0 TPS 2387
Plusieurs problèmes et solutions rencontrés lors des tests de performances
Pourquoi les performances de PHP7 peuvent-elles être autant améliorées ?
1. JIT
2. Modifications dans Zval
3. Type interne zend_string
4. Modifications dans les tableaux PHP (HashTable et Zend Array)
5. Mécanisme d'appel de fonction (Fonction Convention d'appel)
6. Laissez le compilateur effectuer une partie du travail à l'avance via des définitions de macros et des fonctions en ligne
Pourquoi l'amélioration réelle des performances commerciales de PHP7 n'est-elle que d'environ 30 % ?
- Les entreprises réelles n'ont pas nécessairement une logique de calcul très complexe
- Les entreprises réelles utiliseront Redis et MYSQL, et les goulots d'étranglement du réseau et des E/S affectent les performances globales de PHP7
- Les problèmes de performances HTTPS limitent les capacités de PHP7
Problèmes de proxy Redis
Le but du proxy Redis est la haute disponibilité et la mise en cache distribuée de Redis
Réussi Le test de performances est une connexion relativement directe vers redis. La perte de performances liée à l'utilisation de Proxy est d'environ 10 à 15 % (différentes entreprises peuvent avoir un impact plus important)
Y a-t-il donc de la place pour l'optimisation de Proxy ?
Problèmes avec les liens longs et courts entre PHP et Redis
Les performances des connexions longues PHP7 Redis sont environ 10 % supérieures aux performances des connexions courtes (les différentes entreprises varient considérablement)
Base de données MYSQL Problème de pool de connexions
Le pool de connexions à la base de données est responsable de l'allocation, de la gestion et de la libération des connexions à la base de données. Il permet aux applications de réutiliser une connexion à la base de données existante au lieu d'en établir une nouvelle.
Atlas est un middleware de base de données développé et maintenu par 360. Il est situé entre l'application et MySQL. Il implémente le protocole client-serveur de MySQL, communique avec l'application en tant que serveur et communique avec MySQL en tant que client. Il protège les détails de la base de données des applications et réduit la charge sur MySQL.
Atlas prend en charge les temps d'arrêt de la base de données principale sans affecter la lecture, la séparation lecture-écriture, le partage automatique des tables, le traitement de sécurité, le redémarrage en douceur, le pool de connexions, etc.
Après avoir utilisé le pool de connexions à la base de données, l'effet de levier des performances TPS a été augmenté de 80%
Jetons un coup d'œil à l'effet
Quelques détails de l'optimisation des performances PHP7
PHP7 Opcache (amélioré d'environ 1 fois)
Opcache Comment ça marche ?
- PHP est un langage interprété. Le moteur Zend interprétera le code PHP en code machine exécutable (Operate Code), puis le transmettra au CPU pour exécution.
Comment Opcache accélère
Regardez les résultats après l'ajout d'opcache (moyenne des requêtes Le temps de réponse a été réduit de deux fois)
Compilateur GCC4.8+PGO (augmentation de 5% à 10%)
PGO est une optimisation de compilation technologie qui peut être utilisée avec des compilateurs tels que GCC pour améliorer l’efficacité de compilation du compilateur.
Bien que PGO puisse améliorer l'efficacité de la compilation, il n'est pas largement utilisé.
La raison est très simple :
1. Son modèle compliqué de double compilation et ses scénarios d'utilisation limités font que PGO semble inutile
2. Après l'émergence de produits comme opcache, l'amélioration des performances apportée par PGO Ce n'est pas très évident .
Ouvrir plusieurs processus principaux PHP-FPM (augmentation d'environ 10%)
<source lang="xml" collapse="false" first-line="1"> #php-fpm.conf listen = /dev/shm/php-fcgi.sock #php-fpm2.conf listen = /dev/shm/php-fcgi2.sock #/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm.conf #/usr/local/php/sbin/php-fpm --fpm-config /usr/local/php/etc/php-fpm2.conf #代理 upstream backend{ server unix:/dev/shm/php-fcgi.sock; server unix:/dev/shm/php-fcgi2.sock; } </source>
HugePage (augmentation de 2%-3%)
La mémoire par défaut est paginée à 4 Ko, et l'adresse virtuelle et l'adresse mémoire doivent être converties, et cette conversion nécessite une recherche de table
Afin d'accélérer le processus de recherche de table, le processeur aura un intégré. TLB (Translation Lookaside Buffer). Évidemment, si la page virtuelle est plus petite, le nombre d'entrées dans le tableau sera plus important
Et la taille du TLB est limitée. Plus il y a d'entrées, plus le Cache Miss du TLB sera élevé. Donc, si nous pouvons activer des pages de mémoire volumineuses, ce manque de cache TLB peut être indirectement réduit.
<source lang="xml" collapse="false" first-line="1"> opcache.huge_code_pages=1 sudo sysctl vm.nr_hugepages=128 </source>
Optimisation des paramètres de performances de phase
Optimisation partielle des paramètres de performances PHP
Configuration php.ini
<source lang="xml" collapse="false" first-line="1"> opcache.enable=1 opcache.enable_cli=1 opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.save_comments=0 opcache.fast_shutdown=1 opcache.huge_code_pages=1 opcache.file_cache=/dev/shm/opcache/ </source>
Copier après la connexionPHP-FPM
<source lang="xml" collapse="false" first-line="1"> listen = /dev/shm/php-fcgi.sock pm = static pm.max_children = 320 pm.max_requests = 10240 </source>
Copier après la connexionProblèmes non résolus
Problèmes de performances HTTPS Nginx
Contexte de la recherche sur la technologie PHP7
- Dans le contexte de l'augmentation des revenus et de la réduction des dépenses de l'entreprise, nous devons réduire les coûts
- PHP7 par rapport à l'actuel Meizu Les performances du PHP en ligne version 5. L'environnement général de l'Internet mobile impose à nos programmes de répondre plus rapidement aux demandes des utilisateurs pour répondre à une meilleure expérience utilisateur
- Le désir de connaissance des nouvelles technologies (pour satisfaire un peu de vanité)
- Partage de vidéos d'apprentissage associées :
- Tutoriel vidéo php
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)

En tant que langage côté serveur populaire, PHP joue un rôle important dans le développement et l’exploitation de sites Web. Cependant, à mesure que la quantité de code PHP continue d'augmenter et que la complexité de l'application augmente, des goulots d'étranglement en termes de performances deviennent de plus en plus susceptibles de se produire. Afin d'éviter ce problème, nous devons effectuer une analyse et un réglage des performances. Cet article présentera brièvement comment utiliser PHP pour l'analyse et le réglage des performances afin de fournir un environnement d'exécution plus efficace pour votre application. 1. Outil d'analyse des performances PHP 1.XdebugXdebug est un outil d'analyse de code largement utilisé.

Comment utiliser un framework de programmation concurrente pour améliorer les performances PHP Alors que la complexité des applications Web continue d'augmenter, le traitement à haute concurrence est devenu un défi auquel sont confrontés les développeurs. Le langage PHP traditionnel présente des goulots d'étranglement en termes de performances lors du traitement des requêtes simultanées, ce qui oblige les développeurs à trouver des solutions plus efficaces. L'utilisation de frameworks de programmation simultanée, tels que Swoole et ReactPHP, peut améliorer considérablement les performances et les capacités de traitement simultané de PHP. Cet article expliquera comment améliorer les performances des applications PHP en utilisant Swoole et ReactPHP. nous allons

Introduction à PHPCI/CD CI/CD (Intégration continue et livraison continue) est une pratique de développement logiciel qui aide les équipes de développement à fournir plus fréquemment des logiciels de haute qualité. Le processus CI/CD comprend généralement les étapes suivantes : Les développeurs soumettent le code à un système de contrôle de version. Le système de build crée automatiquement du code et exécute des tests unitaires. Si la build et les tests réussissent, le code est déployé dans l'environnement de test. Les testeurs testent le code dans un environnement de test. Si les tests réussissent, le code est déployé en production. Comment CI/CD améliore-t-il les performances des projets PHP ? CI/CD peut améliorer les performances des projets PHP pour les raisons suivantes : Tests automatisés. Les processus CI/CD incluent souvent des tests automatisés, qui peuvent aider les équipes de développement à détecter et à corriger les bogues plus tôt. ce

Résumé des compromis en matière de sécurité et de performances en PHP : en tant que langage de programmation Web populaire, PHP fournit non seulement un environnement de développement flexible et des fonctionnalités riches, mais est également confronté à des compromis en matière de sécurité et de performances. Cet article explorera les problèmes de sécurité et de performances en PHP et fournira quelques exemples de code pour illustrer comment trouver un équilibre entre les deux. Introduction : Dans le développement d'applications Web, la sécurité et les performances sont deux aspects interdépendants mais indépendamment importants. Le langage côté serveur PHP possède de bonnes fonctionnalités de programmation et des fonctions puissantes. Cependant, il ne convient pas.

Les stratégies d'optimisation des performances des fonctions PHP dans les environnements conteneurisés incluent : La mise à niveau de la version PHP L'optimisation de la configuration PHP (telle que l'augmentation des limites de mémoire, l'activation d'OPcache, etc.) L'utilisation d'extensions PHP (telles que APC, Xdebug, Swoole, etc.) L'optimisation de la configuration du conteneur (telle que comme la définition des limites de mémoire et de CPU) )

Memcache est une solution de mise en cache efficace qui peut grandement améliorer les performances des applications PHP. Dans cet article, nous expliquerons comment utiliser Memcache pour optimiser les performances de vos applications PHP et fournirons des exemples de code PHP pratiques. Qu’est-ce que Memcache ? Memcache est une solution de mise en cache distribuée open source qui stocke les données en mémoire pour fournir des réponses rapides. Les données étant stockées en mémoire, les requêtes sont très rapides. Résolu avec d'autres bases de données

En tant que langage côté serveur populaire, PHP joue un rôle important dans le développement et l’exploitation de sites Web. Cependant, à mesure que la quantité de code PHP continue d'augmenter et que la complexité de l'application augmente, des goulots d'étranglement en termes de performances deviennent de plus en plus susceptibles de se produire. Afin d'éviter ce problème, nous devons effectuer une analyse et un réglage des performances. Cet article présentera brièvement comment utiliser PHP pour l'analyse et le réglage des performances afin de fournir un environnement d'exécution plus efficace pour votre application. 1. Outil d'analyse des performances PHP 1.XdebugXdebug est un outil d'analyse de code largement utilisé.

Comment utiliser les microservices pour améliorer les performances et la réactivité des fonctions PHP ? À l'ère du développement croissant d'Internet, des performances élevées et une réponse rapide sont devenues les exigences fondamentales des utilisateurs pour les sites Web et les applications. En tant que langage de développement back-end couramment utilisé, PHP doit également améliorer continuellement ses performances et sa vitesse de réponse pour répondre aux besoins des utilisateurs. L'architecture des microservices est devenue une excellente solution, qui peut non seulement améliorer les performances des applications PHP, mais également offrir une meilleure évolutivité et maintenabilité. Cet article expliquera comment utiliser les microservices pour améliorer les performances des fonctions PHP
