Table des matières
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
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)
2. Comparaison des performances - Page d'accueil WordPress
Comparaison des performances - Flyme Community APP
Plusieurs problèmes et solutions rencontrés lors des tests de performances
Pourquoi les performances de PHP7 peuvent-elles être autant améliorées ?
Pourquoi l'amélioration réelle des performances commerciales de PHP7 n'est-elle que d'environ 30 % ?
Problèmes de proxy Redis
Problèmes avec les liens longs et courts entre PHP et Redis
Base de données MYSQL Problème de pool de connexions
Quelques détails de l'optimisation des performances PHP7
PHP7 Opcache (amélioré d'environ 1 fois)
Opcache Comment ça marche ?
Compilateur GCC4.8+PGO (augmentation de 5% à 10%)
Ouvrir plusieurs processus principaux PHP-FPM (augmentation d'environ 10%)
Optimisation partielle des paramètres de performances PHP
Problèmes non résolus
Maison développement back-end PHP7 Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)

Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)

Jun 25, 2021 am 10:22 AM
php性能

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

  1. 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
  2. Performances de PHP7 par rapport à l'actuel PHP version 5.X sur Meizu Online Au moins doublé
  3. 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)
  4. 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
  5. 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)

Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)
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

Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)
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

Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)
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 % ?

  1. Les entreprises réelles n'ont pas nécessairement une logique de calcul très complexe
  2. 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
  3. 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

Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)

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

Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)

Quelques détails de l'optimisation des performances PHP7

PHP7 Opcache (amélioré d'environ 1 fois)

Opcache Comment ça marche ?
  1. 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.
    Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)
  2. Comment Opcache accélère
    Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)

  3. 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)
    Comprendre la transformation des performances de PHP7 en une minute (performances multipliées par 4)

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

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

Optimisation des paramètres de performances de phase

Optimisation partielle des paramètres de performances PHP

  1. 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 connexion
  2. PHP-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 connexion

    Problèmes non résolus

    Problèmes de performances HTTPS Nginx

    Contexte de la recherche sur la technologie PHP7

    1. 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
    2. 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
    3. Le désir de connaissance des nouvelles technologies (pour satisfaire un peu de vanité)
    4. Partage de vidéos d'apprentissage associées :
    5. 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!

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)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
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)

Comment utiliser PHP pour l'analyse et le réglage des performances Comment utiliser PHP pour l'analyse et le réglage des performances Jun 06, 2023 pm 01:21 PM

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 le framework de programmation simultanée pour améliorer les performances PHP Comment utiliser le framework de programmation simultanée pour améliorer les performances PHP Aug 12, 2023 am 09:33 AM

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

PHP CI/CD vs performances PHP : comment améliorer les performances de votre projet ? PHP CI/CD vs performances PHP : comment améliorer les performances de votre projet ? Feb 19, 2024 pm 08:06 PM

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

Compromis de sécurité et de performances en PHP Compromis de sécurité et de performances en PHP Jul 06, 2023 pm 08:57 PM

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.

Amélioration des performances des fonctions PHP dans un environnement conteneurisé Amélioration des performances des fonctions PHP dans un environnement conteneurisé Apr 13, 2024 pm 03:42 PM

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) )

Comment utiliser Memcache pour améliorer les performances des applications PHP ? Comment utiliser Memcache pour améliorer les performances des applications PHP ? Nov 07, 2023 pm 12:02 PM

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

Comment utiliser PHP pour l'analyse et le réglage des performances Comment utiliser PHP pour l'analyse et le réglage des performances Jun 06, 2023 pm 01:21 PM

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 ? Comment utiliser les microservices pour améliorer les performances et la réactivité des fonctions PHP ? Sep 18, 2023 pm 12:03 PM

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

See all articles