Maison développement back-end PHP7 Un article expliquant comment optimiser et améliorer les performances de PHP7

Un article expliquant comment optimiser et améliorer les performances de PHP7

Dec 01, 2021 pm 02:40 PM
php7 性能

PHP7 est sorti. En tant que plus grande mise à niveau de version et la plus grande mise à niveau de performances de PHP en 10 ans, PHP7 a montré des améliorations de performances évidentes dans plusieurs tests. Cependant, afin de maximiser ses performances, il y a encore quelques choses. Je voudrais vous rappeler.

Un article expliquant comment optimiser et améliorer les performances de PHP7

1. Opcache

N'oubliez pas d'activer Zend Opcache, car PHP7 est plus rapide même sans Opcache activé que PHP-5.6 avec Opcache activé, donc cela s'est produit lors de la période de test précédente. n'a jamais activé Opcache. L'activation d'Opcache est très simple. Ajoutez :

zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1"
Copier après la connexion

2. Utilisez un nouveau compilateur

Il est recommandé d'utiliser un compilateur plus récent, car GCC 4.8 ou supérieur ne sera pris en charge que par Global Register. activé en PHP avec GCC 4.8 ou supérieur, ce qui entraînera une amélioration des performances de 5 % (mesurée du point de vue QPS de Wordpres)

En fait, les versions antérieures à GCC 4.8 le prennent également en charge, mais nous avons constaté qu'il prend en charge : Bug, donc il doit s'agir de la version 4.8 ou supérieure pour activer cette fonctionnalité.

3 HugePage

Je l'ai également présenté dans mon article précédent : Hugepage pour rendre votre PHP7 plus rapide, activez d'abord HugePages dans le système, puis activez huge_code_pages d'Opcache.

Prenons mon CentOS 6.5 comme exemple. Allouez 512 énormes pages de mémoire réservées via :

$sudo sysctl vm.nr_hugepages=512
Copier après la connexion

 :

$ cat /proc/meminfo | grep Huge
AnonHugePages: 106496 kB
HugePages_Total: 512
HugePages_Free: 504
HugePages_Rsvd: 27
HugePages_Surp: 0
Hugepagesize: 2048 kB
Copier après la connexion

Puis ajoutez php.ini :

Le code est le suivant :

 opcache.huge_code_pages=1
Copier après la connexion

De cette façon, PHP utilisera ensuite. de grandes pages de mémoire pour enregistrer ses propres segments de texte et d'énormes allocations de mémoire pour réduire les échecs TLB et améliorer les performances

4 Cache de fichiers Opcache

Activez le cache de fichiers Opcache (expérimental), en l'activant, nous pouvons laisser le cache Opcache. l'opcode dans un fichier externe. Pour certains scripts, il y aura une amélioration significative des performances
Ajouter dans php.ini :

Le code est le suivant :

opcache.file_cache=/tmp
Copier après la connexion

De cette façon, PHP Certains fichiers d'exportation binaires d'Opcode seront mis en cache. dans le répertoire /tmp, qui peut exister tout au long du cycle de vie de PHP

5 PGO

Mon article précédent : Rendez votre PHP7 plus rapide (GCC PGO) a également été introduit, si votre PHP est spécifiquement conçu pour servir. un projet, comme juste pour votre WordPress, ou Drupal, ou autre chose, alors vous pouvez essayer d'utiliser PGO pour améliorer PHP et améliorer spécifiquement les performances de votre projet.

Spécifique, en prenant WordPress 4.1 comme scénario d'optimisation.. Tout d'abord , lors de la compilation de PHP :

Le code est le suivant :

$ make prof-gen
Copier après la connexion

Utilisez ensuite votre projet pour entraîner PHP, par exemple, pour WordPress :

Le code est le suivant :

$ sapi/cgi/php-cgi -T 100 /home/huixinchen/local/www/htdocs/wordpress/index.php >/dev/null
Copier après la connexion

C'est-à-dire, laissez php- CGI exécuter le 100 fois la page d'accueil WordPress pour générer des informations de profil au cours du processus. quand j'y repenserai plus tard, tout le monde est invité à essayer, merci

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)

Comparaison des performances de différents frameworks Java Comparaison des performances de différents frameworks Java Jun 05, 2024 pm 07:14 PM

Comparaison des performances de différents frameworks Java : Traitement des requêtes API REST : Vert.x est le meilleur, avec un taux de requêtes de 2 fois SpringBoot et 3 fois Dropwizard. Requête de base de données : HibernateORM de SpringBoot est meilleur que l'ORM de Vert.x et Dropwizard. Opérations de mise en cache : le client Hazelcast de Vert.x est supérieur aux mécanismes de mise en cache de SpringBoot et Dropwizard. Cadre approprié : choisissez en fonction des exigences de l'application. Vert.x convient aux services Web hautes performances, SpringBoot convient aux applications gourmandes en données et Dropwizard convient à l'architecture de microservices.

Inversion des valeurs clés du tableau PHP : analyse comparative des performances de différentes méthodes Inversion des valeurs clés du tableau PHP : analyse comparative des performances de différentes méthodes May 03, 2024 pm 09:03 PM

La comparaison des performances des méthodes de retournement des valeurs de clé de tableau PHP montre que la fonction array_flip() fonctionne mieux que la boucle for dans les grands tableaux (plus d'un million d'éléments) et prend moins de temps. La méthode de la boucle for consistant à retourner manuellement les valeurs clés prend un temps relativement long.

Comment optimiser les performances des programmes multi-thread en C++ ? Comment optimiser les performances des programmes multi-thread en C++ ? Jun 05, 2024 pm 02:04 PM

Les techniques efficaces pour optimiser les performances multithread C++ incluent la limitation du nombre de threads pour éviter les conflits de ressources. Utilisez des verrous mutex légers pour réduire les conflits. Optimisez la portée du verrou et minimisez le temps d’attente. Utilisez des structures de données sans verrouillage pour améliorer la simultanéité. Évitez les attentes occupées et informez les threads de la disponibilité des ressources via des événements.

Quelle est la performance des fonctions PHP ? Quelle est la performance des fonctions PHP ? Apr 18, 2024 pm 06:45 PM

Les performances des différentes fonctions PHP sont cruciales pour l’efficacité des applications. Les fonctions offrant de meilleures performances incluent echo et print, tandis que les fonctions telles que str_replace, array_merge et file_get_contents ont des performances plus lentes. Par exemple, la fonction str_replace est utilisée pour remplacer des chaînes et a des performances modérées, tandis que la fonction sprintf est utilisée pour formater des chaînes. L'analyse des performances montre qu'il ne faut que 0,05 milliseconde pour exécuter un exemple, prouvant que la fonction fonctionne bien. Par conséquent, une utilisation judicieuse des fonctions peut conduire à des applications plus rapides et plus efficaces.

Quel est l'impact sur les performances de la conversion de tableaux PHP en objets ? Quel est l'impact sur les performances de la conversion de tableaux PHP en objets ? Apr 30, 2024 am 08:39 AM

En PHP, la conversion de tableaux en objets aura un impact sur les performances, principalement affecté par des facteurs tels que la taille du tableau, la complexité, la classe d'objet, etc. Pour optimiser les performances, envisagez d'utiliser des itérateurs personnalisés, en évitant les conversions inutiles, les tableaux de conversion par lots et d'autres techniques.

Comment utiliser des benchmarks pour évaluer les performances des fonctions Java ? Comment utiliser des benchmarks pour évaluer les performances des fonctions Java ? Apr 19, 2024 pm 10:18 PM

Un moyen de comparer les performances des fonctions Java consiste à utiliser Java Microbenchmark Suite (JMH). Les étapes spécifiques incluent : Ajout de dépendances JMH au projet. Créez une nouvelle classe Java et annotez-la avec @State pour représenter la méthode de référence. Écrivez la méthode de benchmark dans la classe et annotez-la avec @Benchmark. Exécutez le test de performance à l'aide de l'outil de ligne de commande JMH.

Comparaison des performances des frameworks Java Comparaison des performances des frameworks Java Jun 04, 2024 pm 03:56 PM

Selon les benchmarks, pour les petites applications hautes performances, Quarkus (démarrage rapide, mémoire faible) ou Micronaut (TechEmpower excellent) sont des choix idéaux. SpringBoot convient aux grandes applications full-stack, mais a des temps de démarrage et une utilisation de la mémoire légèrement plus lents.

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