Ce guide répertorie divers conseils d'optimisation des performances, allant des optimisations rapides au réglage en profondeur, qui peuvent aider à créer des applications Laravel hautes performances.
De nombreux étudiants sur Enlightn nous ont aidé à rédiger ce guide. Si vous recherchez des outils de performance ou de sécurité d'automatisation Laravel, vous souhaiterez peut-être visiter ce site Web.
Il ne fait aucun doute que les utilisateurs préfèrent les applications plus rapides que les applications à chargement lent.
Selon une étude de Google, 53% des utilisateurs d'appareils mobiles perdront (choisiront de quitter) si un site Web met plus de 3 secondes à se charger. Et le temps de chargement moyen d’un site Web mobile est d’environ 15 secondes. C'est pourquoi la performance est importante !
Chaque seconde supplémentaire nécessaire au chargement de votre application, plus votre taux de conversion client sera bas. Heureusement, pour les applications Laravel, ce n’est pas un problème difficile à résoudre.
Laravel possède des fonctionnalités intégrées d'amélioration des performances qui peuvent être utilisées avec une configuration simple.
L'amélioration des performances la plus critique est le route cache. Saviez-vous qu'à chaque fois que votre application Laravel est lancée, le middleware est déterminé, les alias sont résolus, les groupes de routes sont résolus, les actions du contrôleur de route sont spécifiées et les paramètres de requête sont traités ?
Vous pouvez utiliser la commande Artisan route:cache
pour mettre en cache toutes les informations de routage requises afin d'ignorer le traitement du routage : route:cache
来缓存所有必需的路由信息,从而跳过路由处理:
php artisan route:cache
这条命令可以给你带来 5 倍的性能提升!是最简单也是最有效的优化。
除了路由缓存,Laravel 还提供以下内容:
提示:你应该确保将上述缓存命令添加到部署脚本中,以便每次部署时都重新缓存。否则,路由或配置文件的任何更改都不会在应用中体现。
Laravel 开发者常犯的一个错误是在生产模式下安装所有依赖项。一些开发包(例如 Ignition)会在内存中记录查询、日志和转储,从而提供带有上下文的友好错误消息,简化调试过程。尽管这在开发中很有用,但会减慢生产环境中应用程序的速度。
在部署脚本中,使用 Composer 安装拓展包的同时请务必使用 -no-dev
选项:
composer install --prefer-dist --no-dev -o
此外,请确保如上所述在生产环境中使用 -o
选项。这可以让 Composer 可以通过生成「classmap」来优化自动加载器。
如果你的应用在运行时没有生成类,你可以选择使用 --classmap-authoritative
选项而不是 -o
rrreeeCette commande peut vous offrir une amélioration des performances 5x ! C'est l'optimisation la plus simple et la plus efficace.
Une erreur courante que font les développeurs de Laravel est d'installer toutes les dépendances en mode production. Certains packages de développement, tels que Ignition, enregistrent les requêtes, les journaux et les vidages en mémoire, fournissant des messages d'erreur conviviaux avec contexte et simplifiant le débogage. Bien que cela soit utile en développement, cela peut ralentir votre application en production.
-no-dev
: rrreeeDe plus, assurez-vous d'utiliser -o dans l'environnement de production comme mentionné ci-dessus option
. Cela permet à Composer d'optimiser l'autoloader en générant des "classmaps". Si votre application ne génère pas de classes au moment de l'exécution, vous pouvez choisir d'utiliser l'option --classmap-authoritative
au lieu de l'option -o
pour une optimisation plus poussée. Assurez-vous de consulter la documentation Composer d'Autoloader En général, des exemples courants de telles tâches incluent l'analyse et le stockage de fichiers CSV, l'interaction avec des API tierces, l'envoi de notifications aux utilisateurs, les requêtes de base de données longues et fastidieuses et les mises à jour de l'index de recherche.
Les en-têtes de compression peuvent avoir un impact significatif sur les performances des applications. Assurez-vous d'activer la compression ou le CDN sur votre serveur Web pour les fichiers au format texte tels que CSS, JS, XML ou JSON.
Les formats d'image ont déjà des algorithmes de compression implémentés et dans la plupart des cas, les fichiers au format image ont été compressés, et les images ne sont pas des fichiers au format texte (sauf pour le format SVG, qui est un document XML). Par conséquent, le format d’image ne nécessite pas de compression.
Vous pouvez configurer gzip ou brotli (les anciens navigateurs peuvent ne pas prendre en charge brotli) sur votre serveur Web ou CDN pour obtenir une amélioration considérable des performances.
Normalement, la compression peut réduire la taille du fichier d'environ 80 % !
La mise en cache peut améliorer les performances de votre application, en particulier pour les ressources statiques telles que les images, les fichiers CSS et JS. Il est recommandé d'activer les en-têtes de contrôle du cache au niveau du serveur Web ou du CDN, le cas échéant. Si vous souhaitez définir ces en-têtes de contrôle sur l'application Larvel au lieu du serveur Web, vous pouvez utiliser le Cache Control Middleware de Larvel.
Le champ d'en-tête Cache garantit que le navigateur ne demande pas de ressources statiques à plusieurs reprises lors de la visite répétée du site Web. Cela améliore l'expérience utilisateur car le site Web se charge plus rapidement lors des visites ultérieures.
Laravel Mix fournit une fonctionnalité Cache Cleaning prête à l'emploi afin que lorsque le code CSS ou JS est modifié, le navigateur ne continue pas à utiliser l'ancien contenu mis en cache.
Un réseau de diffusion de contenu (CDN) est un groupe de serveurs géographiquement distribué qui fournit des services en utilisant des serveurs plus proches des visiteurs du site Web. Cela permet aux utilisateurs de bénéficier de temps de chargement plus rapides.
En plus de vitesses de chargement plus rapides et de temps de chargement plus courts, CDN présente également d'autres avantages, tels que la réduction de la charge du serveur Web, la protection DDOS et l'analyse des services de ressources statiques, etc.
Certains CDN populaires incluent CloudFlare, AWS CloudFront et Azure CDN. La plupart des CDN ont une certaine limite d'essai gratuit. Pensez à utiliser un CDN pour améliorer les performances de chargement des ressources statiques.
Laravel fournit un composant de support CDN prêt à l'emploi Mix et des fonctions d'assistance asset dans le cadre.
La réduction des scripts supprimera le code supplémentaire de votre application qui n'est pas nécessaire à l'exécution (tel que les commentaires de code, les espaces, les noms de variables raccourcis et d'autres optimisations). Il s'agit d'un moyen courant et efficace de réduire la taille des fichiers JS et CSS dans les environnements de production.
Laravel Mix fournit une fonctionnalité prête à l'emploi de minimiser la sortie pour vos scripts de production
Laravel a un support caching intégré. La mise en cache est mieux utilisée pour les charges de travail lourdes en lecture. Ces charges de travail impliquent souvent des tâches fastidieuses de récupération ou de traitement de données.
Certains scénarios courants de mise en cache peuvent inclure :
N'oubliez pas que la mise en cache n'est d'aucune utilité pour long tail
(éléments rarement demandés). Au contraire, il doit être utilisé avec prudence lors de toute récupération fréquente de données (par rapport aux mises à jour de données).
Assurez-vous également d'invalider ou de vider le cache à chaque fois que le contenu mis en cache change. Par exemple, si vous mettez en cache les en-têtes de profil, actualisez le cache après qu'un utilisateur a mis à jour sa photo de profil.
Si certaines de vos pages prennent du temps à se charger ou ont une utilisation élevée de la mémoire, vous devrez peut-être identifier les goulots d'étranglement des performances. Il existe de nombreux outils dans l'écosystème Laravel pour vous aider à le faire, notamment Laravel Telescope, Laravel Debugbar et Clockwork.
Certains goulots d'étranglement courants en matière de performances incluent :
Si vous ne parvenez pas à identifier les goulots d'étranglement des performances de votre application à l'aide des outils de débogage ci-dessus, vous pouvez envisager d'utiliser des outils d'analyse tels que XDebug ou Blackfire.
De plus, voici une liste de contrôle en ligne complète pour référence 41 Résumé du cours | "Introduction à l'optimisation des performances LX3 Laravel".
L'optimisation des performances est un sujet éternel, mais Laravel possède plusieurs composants intégrés tels que Mix, les files d'attente et le cache, qui rendent l'optimisation des performances facile ! Nous espérons que vous avez appris quelque chose de nouveau sur l’amélioration des performances des applications.
Adresse originale : https://laravel-news.com/performance-checklist
Adresse traduite : https://learnku.com/laravel/t/55702
[Recommandations associées : tutoriel vidéo laravel]
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!