Table des matières
Fichier de configuration du cache
Route cache
Optimisation du chargement des cartes de classes
Optimiser le chargement automatique du compositeur
Compilateur JIT (compilateur juste à temps)
使用更快的缓存和会话驱动
不要低估通过优化查询语句带来的查询速度的提升
缓存查询结果
Maison cadre php Laravel Améliorer les performances des applications Laravel

Améliorer les performances des applications Laravel

Jun 21, 2019 pm 04:31 PM
laravel 应用性能

Améliorer les performances des applications Laravel

Utiliser Laravel pour le développement est une expérience efficace et agréable.
Souvent, lorsque vous êtes prêt à déployer une application, vous réalisez peut-être que l'application peut ne pas fonctionner correctement dans des environnements réels.

Ce qu’il faut comprendre, c’est qu’il n’y a pas de solution miracle. En essayant d'obtenir toutes les optimisations nécessaires pour chaque détail de votre application, celle-ci peut devenir plus lente, mais en utilisant les conseils ci-dessous, vous obtiendrez ce qu'il vous faut.

Fichier de configuration du cache

Les éléments de configuration de Laravel sont distribués dans des dizaines de fichiers de configuration, et cela consomme des performances pour introduire chaque fichier including dans chaque requête. Afin de fusionner tous les fichiers de configuration en un seul, vous pouvez utiliser :

php artisan config:cache
Copier après la connexion

N'oubliez pas que la modification du fichier de configuration n'affectera pas le cache du fichier de configuration existant. Pour actualiser le cache, répétez la commande ci-dessus. Si vous souhaitez vider complètement le cache, exécutez :

php artisan config:clear
Copier après la connexion

Route cache

Dans Laravel, le routage nécessite également une surcharge coûteuse. Cachez le fichier routes.php avec :

php artisan route:cache
Copier après la connexion

Veuillez noter que cela ne fonctionne pas avec les fermetures. Si vous utilisez des fermetures, c'est une bonne opportunité de les déplacer dans le contrôleur, car la commande artisan lèvera une exception lors de la tentative de compilation du chemin lié à la fermeture au lieu de la méthode de contrôleur correcte.
Comme pour la configuration du cache, toute modification apportée à routes.php n'aura aucun impact. Pour actualiser le cache, exécutez la commande ci-dessus chaque fois que vous modifiez le chemin du fichier. Pour nettoyer complètement le cache de routage, exécutez la commande suivante :

php artisan route:clear
Copier après la connexion

Optimisation du chargement des cartes de classes

Dans un projet de taille moyenne, il est normal d'avoir des centaines de fichiers sources PHP selon le. habitudes de programmation, nous séparerons le code, et chaque fichier php a ses propres responsabilités. Bien sûr, cela n’est pas sans inconvénients. Laravel doit charger ces centaines de fichiers pour chaque requête, ce qui consomme beaucoup de performances.

Par conséquent, une meilleure façon est de déclarer quels fichiers doivent être chargés à chaque fois que l'utilisateur le demande (tels que les fournisseurs de services, les middlewares, etc.), puis d'écrire ces fichiers qui doivent être chargés à chaque fois. Dans le même fichier, réduisez le nombre de fichiers à inclure.

Cela est similaire à javascript fusionnant des fichiers en un seul sans différence (webpack, gulp), ce qui réduira les requêtes du navigateur et du serveur.

Si vous devez ajouter d'autres fichiers sources, vous pouvez les déclarer dans la clé des fichiers de config/compile.php.

Après avoir défini les fichiers qui doivent être chargés pour chaque requête, ils seront écrits dans le même fichier, réduisant ainsi la consommation de performances du chargement des fichiers

php artisan optimize --force
Copier après la connexion

Optimiser le chargement automatique du compositeur

Cela ne s'applique pas seulement à Laravel, mais à toute application utilisant Composer.

Je vais d'abord vous expliquer comment fonctionne le chargeur automatique PSR-4, puis vous montrer quelles commandes vous devez exécuter pour l'optimiser. Si vous ne souhaitez pas comprendre le fonctionnement du compositeur, je vous recommande de passer directement au paragraphe sur les commandes de la console.

Lorsque vous demandez la classe AppControllersAuthController à compsoser, celle-ci recherche d'abord l'association directe dans le plan de classe. classmap est un tableau associatif 1 à 1 de classes et de fichiers. Bien sûr, puisque vous n'avez pas ajouté manuellement la classe Login et ses fichiers associés au mappage de classes, composer continuera à rechercher dans l'espace de noms.

Parce que App est un espace de noms PSR-4 fourni par défaut avec Laravel et associé au dossier app/, donc composer essaiera de convertir la classe PSR-4 noms en noms de fichiers à l’aide de procédures de manipulation de chaînes de base. Enfin, il devine que AppControllersAuthController doit être dans le fichier AuthController.php, qui se trouve dans le dossier Controllers/, qui, par coïncidence, se trouve dans le dossier de l'espace de noms, c'est-à-dire app/.

Tout ce travail acharné juste pour obtenir la classe AppControllersAuthController présente dans le fichier app/Controllers/AuthController.php. Pour que composer analyse l'intégralité de l'application et crée une association directe 1 à 1 de classes et de fichiers, exécutez la commande suivante :

composer dumpautoload -o
Copier après la connexion

N'oubliez pas que si vous avez déjà exécuté php artisan optimise - -force, vous n'aurez alors pas besoin d'exécuter à nouveau cette fonction. Parce que la commande d'optimisation indique déjà à composer de créer un chargeur automatique optimisé.

Compilateur JIT (compilateur juste à temps)

PHP n'est pas naturellement compris par les ordinateurs. Vous ne pouvez pas le compiler en bytecode et laisser l'ordinateur l'exécuter. PHP doit passer par un intermédiaire, comme le moteur Zend, qui interprète le fichier PHP et exécute la routine C correspondante. Comme vous pouvez l'imaginer, c'est lent. Chaque fois que votre serveur exécute un fichier PHP, il doit le convertir en jetons - ce processus est effectué et interprété par l'analyseur AST. Malheureusement, l'analyseur doit compiler le fichier PHP à chaque fois, même s'il obtient le même résultat à chaque fois.

Pour rendre votre application plus rapide, vous avez besoin d'une approche compiler une fois, exécuter à vie, et c'est ce que fait un compilateur JIT.

对于 Laravel 所推荐使用的 JIT 编译器是 HHVM,由 Facebook 创立并广泛使用。Wikipedia、Etsy 和其他上千项目也在使用它。

使用更快的缓存和会话驱动

将 session 保存在文件中是种足够快速而又优雅的方法,自 PHP 开始的时代就在这样做了。但是如果你追求性能,那么文件系统就是你需要注意的一件事,因为它很慢。一种更好的做法是将 cache 和 session 存储在内存中,因为它提供了一种高效读写数据的方式。幸运的是,laravel 支持一些基于内存的 cache 和 session 驱动。

我的建议是使用 memcached 作为 cache 和 session 的驱动,但你可以选择任何你喜欢的,只要它是基于内存工作的。

要更改 session 驱动,需要检查以下文件中「driver」项:

app/config/session.php
Copier après la connexion

要更改 cache 驱动,需要检查以下文件中「driver」项:

app/config/cache.php
Copier après la connexion

不要低估通过优化查询语句带来的查询速度的提升

就像你看到的,大部分优化都是在不同的层面使用缓存。但当面临数据库优化时,你不应该依赖缓存。缓存应是优化查询的最后手段。

缓存查询结果

MySQL 不会替你做这件事,也不如你自己做的好。当然了你肯定不会把应用中每个查询的结果都做缓存,看看数据统计,在应用程序中那些高频率的查询语句,它们真的有必要被频繁地执行?每 15 分钟运行一次然后把相同的结果提供给用户
不是更好吗?

在查询构造器中移除了 removing方法是件好事(它曾经是个很好的功能,但不够好 - 人们似乎高估了它的作用)。然后你可以更多地使用 Cache::remember 方法,就像这样:

$posts = Cache::remember('index.posts', 30, function()
{
    return Post::with('comments', 'tags', 'author', 'seo')->whereHidden(0)->get();
});
Copier après la connexion

更多Laravel相关技术文章,请访问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!

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
4 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
<🎜> Obscur: Expedition 33 - Comment obtenir des catalyseurs de chrome parfaits
2 Il y a quelques semaines 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)

Sujets chauds

Tutoriel Java
1677
14
Tutoriel PHP
1278
29
Tutoriel C#
1257
24
Exemple d'introduction de Laravel Exemple d'introduction de Laravel Apr 18, 2025 pm 12:45 PM

Laravel est un cadre PHP pour la création facile des applications Web. Il fournit une gamme de fonctionnalités puissantes, notamment: Installation: Installez le Laravel CLI globalement avec Composer et créez des applications dans le répertoire du projet. Routage: définissez la relation entre l'URL et le gestionnaire dans Routes / web.php. Voir: Créez une vue dans les ressources / vues pour rendre l'interface de l'application. Intégration de la base de données: fournit une intégration prête à l'emploi avec des bases de données telles que MySQL et utilise la migration pour créer et modifier des tables. Modèle et contrôleur: le modèle représente l'entité de la base de données et le contrôleur traite les demandes HTTP.

Résoudre les problèmes de mise en cache dans Craft CMS: Utilisation du plug-in Wiejeben / Craft-Laravel-MIX Résoudre les problèmes de mise en cache dans Craft CMS: Utilisation du plug-in Wiejeben / Craft-Laravel-MIX Apr 18, 2025 am 09:24 AM

Lorsque vous développez des sites Web à l'aide de CRAFTCMS, vous rencontrez souvent des problèmes de mise en cache de fichiers de ressources, en particulier lorsque vous mettez fréquemment à mettre à jour les fichiers CSS et JavaScript, les anciennes versions des fichiers peuvent toujours être mises en cache par le navigateur, ce qui fait que les utilisateurs ne voient pas les derniers changements de temps. Ce problème affecte non seulement l'expérience utilisateur, mais augmente également la difficulté du développement et du débogage. Récemment, j'ai rencontré des problèmes similaires dans mon projet, et après une exploration, j'ai trouvé le plugin wiejeben / artist-laravel-mix, qui a parfaitement résolu mon problème de mise en cache.

Comment apprendre Laravel comment apprendre Laravel gratuitement Comment apprendre Laravel comment apprendre Laravel gratuitement Apr 18, 2025 pm 12:51 PM

Vous voulez apprendre le cadre de Laravel, mais ne souffrez pas de ressources ni de pression économique? Cet article vous fournit un apprentissage gratuit de Laravel, vous apprenant à utiliser des ressources telles que les plateformes en ligne, les documents et les forums communautaires pour jeter une base solide pour votre parcours de développement PHP de la mise en place de maîtrise.

Méthode d'installation de Laravel Framework Méthode d'installation de Laravel Framework Apr 18, 2025 pm 12:54 PM

Résumé de l'article: Cet article fournit des instructions détaillées étape par étape pour guider les lecteurs sur la façon d'installer facilement le cadre Laravel. Laravel est un puissant cadre PHP qui accélère le processus de développement des applications Web. Ce didacticiel couvre le processus d'installation des exigences du système à la configuration des bases de données et à la configuration du routage. En suivant ces étapes, les lecteurs peuvent jeter rapidement et efficacement une base solide pour leur projet Laravel.

Quelles versions de Laravel y a-t-il? Comment choisir la version de Laravel pour les débutants Quelles versions de Laravel y a-t-il? Comment choisir la version de Laravel pour les débutants Apr 18, 2025 pm 01:03 PM

Dans le Guide de sélection de la version Laravel Framework pour les débutants, cet article plonge dans les différences de version de Laravel, conçues pour aider les débutants à faire des choix éclairés parmi de nombreuses versions. Nous nous concentrerons sur les principales caractéristiques de chaque version, comparerons leurs avantages et leurs inconvénients, et fournirons des conseils utiles pour aider les débutants à choisir la version la plus appropriée de Laravel en fonction de leur niveau de compétence et de leurs exigences de projet. Pour les débutants, le choix d'une version appropriée de Laravel est crucial car il peut avoir un impact significatif sur leur courbe d'apprentissage et leur expérience de développement globale.

Fonction de connexion de l'utilisateur de Laravel Fonction de connexion de l'utilisateur de Laravel Apr 18, 2025 pm 12:48 PM

Laravel fournit un cadre Auth complet pour implémenter les fonctions de connexion des utilisateurs, notamment: définir des modèles d'utilisateurs (modèle éloquent), créant des formulaires de connexion (moteur de modèle de lame), rédaction des contrôleurs de connexion (héritage de l'authentification \ loginContrôleur), vérifiant les demandes de connexion (Auth :: tentative) Redirection après la connexion de la connexion, la limitation de la sécurité). De plus, le cadre Auth fournit également des fonctions telles que la réinitialisation des mots de passe, l'enregistrement et la vérification des e-mails. Pour plus de détails, veuillez consulter la documentation de Laravel: https://laravel.com/doc

Comment afficher le numéro de version de Laravel? Comment afficher le numéro de version de Laravel Comment afficher le numéro de version de Laravel? Comment afficher le numéro de version de Laravel Apr 18, 2025 pm 01:00 PM

Le Framework Laravel a des méthodes intégrées pour afficher facilement son numéro de version pour répondre aux différents besoins des développeurs. Cet article explorera ces méthodes, y compris l'utilisation de l'outil de ligne de commande Composer, l'accès à des fichiers .env ou l'obtention d'informations de version via le code PHP. Ces méthodes sont essentielles pour maintenir et gérer le versioning d'applications Laravel.

La différence entre Laravel et ThinkPhp La différence entre Laravel et ThinkPhp Apr 18, 2025 pm 01:09 PM

Laravel et ThinkPHP sont tous deux des cadres PHP populaires et ont leurs propres avantages et inconvénients dans le développement. Cet article comparera les deux en profondeur, mettant en évidence leur architecture, leurs fonctionnalités et leurs différences de performances pour aider les développeurs à faire des choix éclairés en fonction de leurs besoins spécifiques de projet.

See all articles