"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Augmenter l'efficacité de PHP : techniques éprouvées pour l'optimisation des performances

Augmenter l'efficacité de PHP : techniques éprouvées pour l'optimisation des performances

Publié le 2024-11-08
Parcourir:319

Boosting PHP Efficiency: Proven Techniques for Performance Optimization

L'optimisation des performances PHP garantit le bon fonctionnement de nos applications Web, une réponse rapide et une gestion efficace du trafic. Vous trouverez ci-dessous un guide détaillé, étape par étape, sur la manière d'optimiser efficacement les performances PHP, avec des exemples pratiques pour chaque stratégie d'optimisation.


Partie 1 : Mise à jour vers la dernière version stable de PHP

Étape 1 : Vérifiez la version actuelle de PHP

Commencez par vérifier la version actuelle de PHP installée sur votre système :

php -v

Si votre version est obsolète, la mise à niveau vers la dernière version stable de PHP s'accompagne souvent d'améliorations de performances et de nouvelles fonctionnalités.

Étape 2 : Mettre à niveau PHP (si nécessaire)

Pour installer la dernière version de PHP, exécutez les commandes suivantes pour Ubuntu :

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt install php8.2 # Replace with the latest version

Pourquoi?

Chaque nouvelle version de PHP apporte des améliorations de performances. Par exemple, PHP 7.x offre une amélioration de près de 50 % du temps d'exécution par rapport à PHP 5.x, et PHP 8.x présente d'autres améliorations significatives.


Partie 2 : Utiliser la mise en cache des opcodes (PHP Opcache)

Étape 1 : Activer Opcache en PHP

Opcache stocke le bytecode de script précompilé en mémoire, réduisant ainsi le besoin pour PHP de charger et d'analyser des scripts à chaque requête. Pour l'activer :

  1. Ouvrez votre fichier php.ini :
   sudo nano /etc/php/8.2/fpm/php.ini # Use your PHP version
  1. Recherchez les paramètres Opcache et activez-le :
   opcache.enable=1
   opcache.memory_consumption=128
   opcache.max_accelerated_files=10000
   opcache.revalidate_freq=0
  1. Redémarrez PHP-FPM et Nginx :
   sudo systemctl restart php8.2-fpm
   sudo systemctl restart nginx

Pourquoi?

Opcache peut considérablement améliorer les performances en éliminant le besoin de compiler du code PHP pour chaque requête, réduisant ainsi considérablement l'utilisation du processeur et le temps de requête.


Partie 3 : Optimiser les requêtes de base de données

Étape 1 : indexez vos tables de base de données

Une indexation incorrecte de la base de données peut ralentir l'exécution des requêtes. Assurez-vous d'indexer les colonnes utilisées dans les clauses WHERE ou pour le tri.

Exemple de requête MySQL :

CREATE INDEX idx_user_email ON users(email);

Étape 2 : Utiliser le profilage des requêtes

Profilez vos requêtes de base de données pour détecter les goulots d'étranglement. L'ORM Eloquent de Laravel, par exemple, permet le profilage des requêtes :

DB::enableQueryLog();
$users = DB::table('users')->get();
dd(DB::getQueryLog());

Pourquoi?

En optimisant vos requêtes de base de données et en indexant les colonnes critiques, vous pouvez réduire considérablement le temps d'exécution des requêtes, accélérant ainsi votre application PHP.


Partie 4 : Activer la compression Gzip

Étape 1 : Activer Gzip dans Nginx

Gzip réduit la taille des données envoyées de votre serveur au client, ce qui accélère le chargement des pages. Pour l'activer dans Nginx :

  1. Ouvrez le fichier de configuration Nginx :
   sudo nano /etc/nginx/nginx.conf
  1. Ajoutez les paramètres Gzip suivants :
   gzip on;
   gzip_comp_level 2;
   gzip_types text/css application/javascript application/json image/svg xml;
   gzip_min_length 256;
  1. Enregistrez et redémarrez Nginx :
   sudo systemctl restart nginx

Pourquoi?

L'activation de la compression Gzip réduit la quantité de données à transférer, ce qui entraîne des temps de chargement de page plus rapides et une utilisation réduite de la bande passante.


Partie 5 : Utiliser un réseau de diffusion de contenu (CDN)

Étape 1 : Configurer un CDN pour les actifs statiques

Les CDN comme Cloudflare ou Amazon CloudFront stockent des copies d'actifs statiques tels que CSS, JavaScript et des images sur des serveurs distribués dans le monde entier, les rendant ainsi disponibles plus près de l'utilisateur.

Exemple:

Pourquoi?

En déchargeant du contenu statique sur un CDN, vous réduisez la charge sur votre serveur et améliorez considérablement les temps de réponse pour les utilisateurs du monde entier.


Partie 6 : Utiliser PHP-FPM et le réglage

Étape 1 : Installer et configurer PHP-FPM

Assurez-vous que vous utilisez PHP-FPM (FastCGI Process Manager), qui est mieux optimisé pour les environnements à forte charge :

sudo apt install php8.2-fpm

Étape 2 : Ajustez les paramètres PHP-FPM

Vous pouvez régler les paramètres PHP-FPM pour traiter plus de requêtes efficacement en ajustant les paramètres pm.max_children, pm.start_servers, pm.min_spare_servers et pm.max_spare_servers dans le fichier de configuration du pool PHP-FPM.

Modifiez le fichier de configuration du pool :

sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Augmentez pm.max_children en fonction de la mémoire disponible et du trafic :

pm.max_children = 50
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

Redémarrez PHP-FPM et Nginx :

sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx

Pourquoi?

PHP-FPM permet à vos processus PHP de gérer efficacement davantage de requêtes simultanées, réduisant ainsi le temps de réponse du serveur sous forte charge.


Partie 7 : Réduire et regrouper les actifs

Étape 1 : Réduire CSS, JavaScript et HTML

La réduction de vos fichiers CSS, JavaScript et HTML en supprimant les espaces et les commentaires inutiles réduit la taille du fichier.

Utilisez des outils comme Laravel Mix ou Gulp :

npm install laravel-mix --save-dev

Exemple de fichier webpack.mix.js pour Laravel :

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .minify('public/js/app.js')
    .minify('public/css/app.css');

Étape 2 : Activer la mise en cache du navigateur

Dans votre fichier de configuration Nginx, ajoutez une mise en cache pour les actifs statiques :

location ~* \.(css|js|jpg|jpeg|png|gif|ico|woff|woff2)$ {
    expires 1y;
    access_log off;
    add_header Cache-Control "public";
}

Pourquoi?

La réduction et le regroupement des actifs, ainsi que l'activation de la mise en cache du navigateur, réduisent la taille de vos fichiers et diminuent les temps de chargement, ce qui conduit à une application plus rapide.


Partie 8 : Utiliser Redis ou Memcached pour la mise en cache

Étape 1 : Installer Redis

Pour installer Redis :

sudo apt install redis-server

Étape 2 : configurer Laravel pour utiliser Redis

Dans Laravel, ouvrez le fichier .env et configurez Redis comme pilote de cache :

CACHE_DRIVER=redis

Étape 3 : mise en cache des requêtes de base de données

Utilisez la mise en cache des requêtes pour accélérer les requêtes répétées de base de données :

$users = Cache::remember('users', 60, function() {
    return DB::table('users')->get();
});

Pourquoi?

En mettant en cache les requêtes de base de données, vous réduisez la charge de la base de données et améliorez considérablement les temps de réponse pour les données fréquemment consultées.


Partie 9 : Optimiser les chargeurs automatiques

Étape 1 : utiliser l'optimisation du chargeur automatique de Composer

Optimiser les chargeurs automatiques Composer pour la production :

composer install --optimize-autoloader --no-dev

Étape 2 : Supprimer les fournisseurs de services inutilisés

Dans Laravel, désactivez tous les fournisseurs de services inutilisés dans config/app.php pour réduire l'utilisation de la mémoire et accélérer le temps de démarrage de l'application.

Pourquoi?

L'optimisation du chargement automatique compile les cartes de classes, ce qui accélère le chargement des classes. La désactivation des services inutilisés aide l'application à utiliser moins de ressources.


Partie 10 : Surveillance et profilage

Étape 1 : Utilisez le télescope Laravel (ou d'autres outils de profilage)

Installez le télescope Laravel pour profiler votre application :

composer require laravel/telescope
php artisan telescope:install
php artisan migrate
php artisan serve

Étape 2 : utilisez New Relic ou Blackfire pour le profilage avancé

Vous pouvez intégrer des outils tiers tels que New Relic ou Blackfire pour analyser les goulots d'étranglement des applications, les performances des bases de données, etc.

Pourquoi?

Les outils de surveillance et de profilage aident à identifier les requêtes lentes, les fuites de mémoire et les goulots d'étranglement dans votre application PHP, vous permettant ainsi de résoudre les problèmes de performances de manière proactive.


Conclusion:

En suivant ces étapes, vous pouvez améliorer considérablement les performances de votre application PHP. De la mise à jour de PHP et l'activation de la mise en cache Opcode à l'optimisation des requêtes de base de données et à la configuration de PHP-FPM, chaque étape contribue à une application plus réactive et évolutive.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/mdarifulhaque/boosting-php-efficiency-proven-techniques-for-performance-optimization-4plh?1 En cas de violation, veuillez contacter [email protected] pour supprimer il
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3