Lorsque nous programmons, quel que soit le langage, il y a des concepts et des techniques que nous pouvons adopter pour améliorer la lisibilité du code et la compréhension et les performances des applications.
Le plus grand apprentissage ici est:N'essayez pas de réinventer la roue . Comme je l'ai toujours dit: étudier et rechercher. Très probablement, quelqu'un a déjà fait face au même problème que vous et a trouvé une solution efficace. Profiter des connaissances accumulées par la communauté permet non seulement de gagner du temps, mais aide également à éviter les pièges et les erreurs courantes.
requêtes et base de donnéesSur ce sujet, qui est très important dans les applications, j'ai déjà écrit un peu, cela vaut la peine d'être lu.
Optimiser la persistance des données et la lecture sur MySQL et l'applicationTechniques d'optimisation des performances
En plus des bases de données et des bases de données, il existe d'autres domaines fondamentaux pour optimiser les applications. Soulignons certains:
cache
L'utilisation du cache est essentielle pour réduire la charge dans la base de données, stockant temporairement des données fréquemment accessibles. La communauté utilise largement Maximiser lapplication - PHP à cette fin.
Maximiser lapplication - PHP est une base de données NOSQL hautement performative mais volatile en mémoire car la mémoire n'est pas persistante. Il est idéal pour des cas tels que:
Sessions utilisateur
Optimisations de code
LOOCS:
Ne pas toujours remplacer pour Forach améliorera les performances. Bien que le code puisse devenir plus lisible, il est essentiel de tester à l'aide d'outils tels que *Opérations natives: L'utilisation de fonctions PHP natives telles que Array_Map est généralement plus sûre et plus efficace que la création de solutions personnalisées. N'oubliez pas: "Pas besoin de réinventer la roue."
Minimiser les opérations de boucle: Évitez de créer des boucles dans des boucles inutilement. Un premier ordre niché peut être aussi nocif qu'un sélection *. Considérez plutôt des solutions alternatives, telles que la logique de réécriture ou l'utilisation de requêtes plus efficaces pour réduire la complexité.
: L'adhésion aux pratiques PSR améliore la lisibilité et la maintenance du code. Aujourd'hui, les IDE offrent des extensions qui automatisent l'application de ces normes en économisant des modifications. Non seulement cela aide à la qualité du code, mais cela facilite également la vie pour ceux qui maintiendront l'avenir
L'utilisation des files d'attente est de plus en plus courante. L'idée est simple: si le traitement d'une tâche peut être effectué plus tard, supprimez-le de l'exécution immédiate de la méthode.
Exemple :
Lorsqu'un utilisateur effectue un achat dans le commerce électronique, est-il nécessaire d'envoyer instantanément la confirmation du courrier électronique? Plusieurs fois, non. Dans ce cas, vous pouvez envoyer l'e-mail dans une file d'attente, qui sera traité dans les lots, d'économie des ressources et d'assurer l'évolutivité.
Sous-processus
Imaginez une application responsable du traitement des centaines de factures simultanément, en calculant les taxes pour chacun. Si toutes ces opérations sont effectuées dans une séquence, vous pouvez faire face à des alertes lentes, même avec des ressources de calcul (CPU et RAM).
Dans ce cas, les sous-processus peuvent être une solution. Divisez le traitement en petites pièces et exécutez-les en parallèle. Par exemple, chaque sous-processus peut être responsable du calcul des taxes pour un groupe de factures. Cela permet à votre application de mieux profiter des ressources disponibles, d'accélérer le traitement et d'éviter les goulots d'étranglement.
Nécessite et inclut : Préférez l'utilisation de la mise à jour pour gérer le chargement des classes et des fichiers. Cela n'améliore pas seulement les performances, mais il évite les problèmes avec les classes grandes et inutiles (les célèbres mégazordes). Par exemple, le chargement d'une classe avec 7 000 lignes juste pour utiliser une méthode de sélection est extrêmement inefficace. Dans ces situations, il est important de considérer un refactor
.
La première chose que vous devez savoir est que PHP est un langage très léger. Dans des conditions de température et de pression normales, avec une machine adaptée à la quantité de demandes et avec les optimisations appropriées dans le code, tout a tendance à bien fonctionner.
"Mais Matthew, qu'est-ce qu'une machine correspond à la quantité de demandes?"
J'ai déjà participé à la mise en œuvre et à l'optimisation d'applications complexes qui ont reçu plus de 6 millions de demandes par jour en utilisant, en moyenne,
deux machines avec 2 VCPU et 2 Go de RAM chacun .
Maintenant, parlant d'outils:
Il s'agit d'un gestionnaire de processus FastCGI pour PHP, une alternative au module APACH PHP. PHP-FPM est plus rapide, flexible et largement utilisé dans la production.
opcache
Gardez les versions mises à jour
Il est essentiel de conserver les packages, les outils, les cadres et le langage PHP le plus up-date possible. Je comprends que souvent l'effort pour migrer d'une ancienne version, comme PHP 7.4, vers un nouveau, comme PHP 8.x, peut sembler fort. Cependant, les avantages en termes de performance, de sécurité et de soutien en valent la peine.
Portez une attention particulière à la configuration des threads et des processus enfants (processus des enfants). Définir des valeurs très élevées pour ces paramètres ou permettre l'utilisation de fichiers volumineux peut surcharger la machine, conduisant à des défauts et à l'indisponibilité. Ajustez toujours ces paramètres en fonction de la capacité de la machine et des exigences d'application réelles.
Surveillance
L'un des éléments les plus importants lorsque nous parlons d'optimisations est de comprendre ce qui doit être optimisé. Pour ce faire, un bon outil de surveillance des applications (surveillance des performances des applications) peut fournir des informations précieuses et permettre aux actions préventives avant que les problèmes ne deviennent essentiels.
Nouvelle religion
datadatog
Le défi de l'utilisation de ces outils à main est la complexité qu'ils ajoutent, en particulier dans des applications robustes sans équipe de support dédiée. Ces solutions nécessitent beaucoup de configuration, de tests stricts et veillent à empêcher les agents d'avoir un impact négatif sur les performances. De plus, ils ont besoin de couches et de couches de basculement - juste une machine de redondance ne suffit souvent pas.
Néanmoins, la mise en œuvre et le test de ces outils peuvent être un grand défi pour un week-end!Dans la plupart des cas, des outils comme New Relic offrent un excellent point de départ, offrant une grande capacité à prévenir les catastrophes. Cependant, il est important d'être conscient du coût, qui peut devenir significatif en fonction de l'utilisation.
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!