Maison >développement back-end >tutoriel php >Résumé de l'optimisation du code PHP
[Introduction] 1- Écrivez du code modulaire. Un bon code PHP doit être un code modulaire. Les capacités de programmation orientée objet de PHP sont des outils particulièrement puissants pour diviser votre application en fonctions ou méthodes. Vous devez séparer autant que possible le HTML CSS JavaS frontal du côté serveur de votre application
Un bon code PHP doit être un code modulaire. Les capacités de programmation orientée objet de PHP sont des outils particulièrement puissants pour diviser votre application en fonctions ou méthodes. Vous devez séparer autant que possible le code HTML/CSS/JavaScript frontal du côté serveur de votre application. Vous pouvez également suivre le modèle MVC (Model-View-Controller) sur n'importe quel framework PHP.
Un bon code PHP doit avoir un ensemble complet de normes de codage. Atteindre les normes de programmation grâce à la dénomination des variables et des fonctions, des méthodes unifiées pour accéder à la base de données et gérer les erreurs, ainsi que la même méthode d'indentation du code peuvent rendre votre code plus lisible.
Un bon code PHP doit être portable. Vous pouvez utiliser les fonctionnalités existantes de PHP telles que les guillemets magiques et les balises courtes. Essayez de comprendre vos besoins puis écrivez du code pour le rendre indépendant et portable en adaptant les fonctionnalités PHP.
Un bon code PHP doit être sécurisé. PHP5 offre d'excellentes performances et flexibilité. Mais le problème de sécurité incombe entièrement aux développeurs. Pour un développeur PHP professionnel, il est crucial d'avoir une compréhension approfondie des principales vulnérabilités de sécurité, telles que : les scripts intersites (XSS), la falsification de requêtes intersites (CSRF), les vulnérabilités d'injection de code et les vulnérabilités de codage de caractères. En utilisant les fonctionnalités et fonctions spéciales de PHP, telles que : mysql_real_escape_string, etc., vous pouvez écrire du code sécurisé.
Les commentaires de code sont une partie importante du code. Grâce aux commentaires de code, vous pouvez savoir ce que fait la variable ou la fonction, ce qui sera très utile lors de la future maintenance du code.
Remplacez toutes les balises courtes par des balises PHP complètes.
Utilisez toujours des guillemets simples au lieu de guillemets doubles pour les chaînes afin d'éviter la dégradation des performances causée par PHP recherchant des variables dans la chaîne . Il est plus rapide de placer la chaîne entre guillemets simples plutôt que doubles. Étant donné que PHP recherchera les variables dans les chaînes entourées de guillemets doubles, les guillemets simples ne fonctionneront pas avec htmlspecialchars pour garantir que les guillemets simples (') sont également convertis en entités HTML, ce qui est une bonne pratique.
Il est préférable de sortir une chaîne séparée par des virgules (,) via l'instruction echo que d'utiliser l'opérateur de concaténation de chaîne (. ) a de meilleures performances.
Vérifiez la valeur transmise $_GET['query'] avant de sortir. En utilisant la fonction isset ou vide, vous pouvez vérifier si une variable est nulle.
11- Autres
Si vous pouvez définir une méthode de classe comme statique, essayez de la définir comme statique, et sa vitesse augmentera de près de 4 fois.
L'incrémentation des variables locales dans la méthode est la plus rapide. Presque aussi rapide que d’appeler des variables locales dans une fonction.
L'incrémentation d'une variable globale est 2 fois plus lente que l'incrémentation d'une variable locale.
L'augmentation d'une propriété d'objet (telle que : $this->prop) est 3 fois plus lente que l'incrémentation d'une variable locale.
L'incrémentation d'une variable locale non définie est 9 à 10 fois plus lente que l'incrémentation d'une variable locale prédéfinie.
Le simple fait de définir une variable locale sans l'appeler dans une fonction ralentira également les choses (au même titre que l'incrémentation d'une variable locale). PHP vérifiera probablement si une variable globale existe.
Les appels de méthode semblent être indépendants du nombre de méthodes définies dans la classe, car j'ai ajouté 10 méthodes (avant et après avoir testé la méthode) mais il n'y a eu aucun changement dans les performances .
Les méthodes d'une classe dérivée s'exécutent plus rapidement que la même méthode définie dans une classe de base.
Appeler une fonction vide avec un paramètre prend le même temps que d'effectuer 7 à 8 opérations d'incrémentation de variable locale. Un appel de méthode similaire prend près de 15 incréments de variables locales.
Le temps nécessaire à Apache pour analyser un script PHP est 2 à 10 fois plus lent que pour analyser une page HTML statique. Essayez d'utiliser plus de pages HTML statiques et moins de scripts.
À moins que le script puisse être mis en cache, il sera recompilé à chaque appel. L'introduction d'un mécanisme de mise en cache PHP peut généralement améliorer les performances de 25 à 100 % pour éliminer la surcharge de compilation.
Essayez de mettre en cache autant que possible, vous pouvez utiliser memcached. Memcached est un système de mise en cache d'objets mémoire hautes performances qui peut être utilisé pour accélérer les applications Web dynamiques et réduire la charge de la base de données. La mise en cache des codes OP est utile afin que les scripts n'aient pas besoin d'être recompilés pour chaque requête.
Lorsque vous utilisez une chaîne et que vous devez vérifier si sa longueur répond à certaines exigences, vous utiliserez naturellement la fonction strlen(). Cette fonction s'exécute assez rapidement car elle n'effectue aucun calcul et renvoie simplement la longueur de chaîne connue stockée dans la structure zval (la structure de données intégrée du C utilisée pour stocker les variables PHP). Cependant, puisque strlen() est une fonction, elle sera quelque peu lente, car l'appel de fonction passera par de nombreuses étapes, telles que les lettres minuscules (Annotation : fait référence au nom de la fonction en minuscule, PHP ne fait pas de distinction entre les noms de fonction en majuscules et en minuscules. ), recherche de hachage, Sera exécuté avec la fonction appelée. Dans certains cas, vous pouvez utiliser l'astuce isset() pour accélérer l'exécution de votre code.
(举例如下) if (strlen($foo) < 5) { echo 'Foo is too short'; }
(与下面的技巧做比较) if (!isset($foo[5])) { echo 'Foo is too short'; }
Appeler isset() s'avère être plus rapide que strlen(), car contrairement à ce dernier, isset(), en tant que construction de langage, signifie que sa recherche de fonction et les lettres minuscules ne sont pas requises pour l'exécution. Autrement dit, vous ne dépensez pas beaucoup de temps système dans le code de niveau supérieur pour vérifier la longueur de la chaîne.
Lors de l'exécution de l'incrémentation ou de la décrémentation de la variable $i, $i sera plus lent que $i. Cette différence est spécifique à PHP et ne s'applique pas aux autres langages, alors ne modifiez pas votre code C ou Java et attendez-vous à ce qu'il soit instantanément plus rapide, cela ne fonctionnera pas. $i est plus rapide car il ne nécessite que 3 instructions (opcodes), tandis que $i nécessite 4 instructions. Le post-incrémentation crée en fait une variable temporaire qui est ensuite incrémentée. L'incrément du préfixe augmente directement sur la valeur d'origine. Il s'agit d'une forme d'optimisation, comme le fait l'optimiseur PHP de Zend. C'est une bonne idée de garder cette optimisation à l'esprit car tous les optimiseurs de commandes n'effectuent pas les mêmes optimisations, et il existe un grand nombre de fournisseurs d'accès Internet (FAI) et de serveurs qui ne disposent pas d'optimiseurs de commandes.
Il n'est pas nécessaire d'être orienté objet (POO). L'orientation objet est souvent très coûteuse, et chaque appel de méthode et d'objet consomme beaucoup de mémoire.
Il n'est pas nécessaire d'utiliser des classes pour implémenter toutes les structures de données, les tableaux sont également utiles.
Ne subdivisez pas trop la méthode, réfléchissez bien au code que vous comptez réellement réutiliser ?
Vous pouvez toujours diviser le code en méthodes lorsque vous en avez besoin.
Essayez d'utiliser un grand nombre de fonctions intégrées à PHP.
S'il y a beaucoup de fonctions chronophages dans votre code, vous pouvez envisager de les implémenter en tant qu'extensions C.
Profilez votre code. Le vérificateur vous dira quelles parties du code prennent combien de temps. Le débogueur Xdebug comprend des routines d'inspection qui évaluent l'intégrité globale de votre code et révèlent les goulots d'étranglement dans votre code.
mod_zip peut être utilisé comme module Apache pour compresser instantanément vos données et réduire le volume de transfert de données de 80 %.
Lorsque file_get_contents peut être utilisé à la place de file, fopen, feof, fgets et d'autres séries de méthodes, essayez d'utiliser file_get_contents car c'est beaucoup plus efficace ! Mais veuillez faire attention au problème de version PHP de file_get_contents lors de l'ouverture d'un fichier URL ;
Faites le moins d'opérations sur les fichiers possible, bien que l'efficacité des opérations sur les fichiers de PHP ne soit pas faible
) ;
Ne déclarez pas de variables à l'intérieur de la boucle, en particulier les grandes variables : les objets (cela ne semble pas être seulement un problème en PHP, n'est-ce pas ?) ; Tableaux multidimensionnels Essayez de ne pas imbriquer les affectations dans des boucles
N'utilisez pas d'expressions régulières lorsque vous pouvez utiliser les fonctions de manipulation de chaînes internes de PHP ; > foreach est plus efficace. Essayez d'utiliser foreach au lieu de while et for boucles
"Utilisez i =1 au lieu de i=i 1. Cela est conforme à l'habitude c/c et est plus efficace";
Pour les variables globales, vous devez les supprimer() après 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!