


Un article expliquant comment optimiser et améliorer les performances de 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.
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"
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
:
$ cat /proc/meminfo | grep Huge AnonHugePages: 106496 kB HugePages_Total: 512 HugePages_Free: 504 HugePages_Rsvd: 27 HugePages_Surp: 0 Hugepagesize: 2048 kB
Puis ajoutez php.ini :
Le code est le suivant :
opcache.huge_code_pages=1
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
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
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
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!

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)

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.

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.

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.

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.

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.

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.

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