Détails sur la façon d'optimiser pendant le développement PHP

墨辰丷
Libérer: 2023-03-25 19:28:01
original
1170 Les gens l'ont consulté

Cet article présente principalement les détails sur la façon d'optimiser pendant le processus de développement PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

La syntaxe unique de PHP mélange C, Java, Perl et la syntaxe innovante de PHP. Il peut exécuter des pages Web dynamiques plus rapidement que CGI ou Perl. Par rapport à d'autres langages de programmation, les pages dynamiques créées avec PHP intègrent des programmes dans des documents HTML pour exécution, et l'efficacité d'exécution est bien supérieure à celle de CGI qui génère entièrement des balises HTML. Les directives d'optimisation pour 42 programmes sont présentées ci-dessous.
1. Si une méthode peut être rendue statique, déclarez-la statiquement. La vitesse peut être augmentée jusqu'à 4 fois.

 2.echo est plus rapide que print.

3. Utilisez les multiples paramètres d'echo (Traduction : fait référence à l'utilisation de virgules au lieu de points) au lieu de la concaténation de chaînes.

4. Déterminez le nombre maximum de boucles avant d'exécuter la boucle for. Ne calculez pas la valeur maximale à chaque boucle.

5. Désenregistrez les variables inutilisées, en particulier les grands tableaux, pour libérer de la mémoire.

6. Essayez d'éviter d'utiliser __get, __set, __autoload.

7.require_once() coûte cher.

8. Utilisez le chemin complet lors de l'inclusion de fichiers, et la résolution du chemin du système d'exploitation prendra moins de temps.

9. Si vous souhaitez connaître l'heure à laquelle le script commence à s'exécuter (annotation : le serveur reçoit la requête du client), utiliser $_SERVER['REQUEST_TIME'] est mieux que time().

 10. Les fonctions remplacent les expressions régulières pour compléter la même fonction.

11. La fonction str_replace est plus rapide que la fonction preg_replace, mais la fonction strtr est quatre fois plus efficace que la fonction str_replace.

12. Si une fonction de remplacement de chaîne accepte des tableaux ou des caractères comme paramètres et que la longueur du paramètre n'est pas trop longue, vous pouvez alors envisager d'écrire un code de remplacement supplémentaire afin que chaque paramètre passé soit un caractère au lieu d'écrire simplement une ligne de code pour accepter les tableaux comme paramètres de requête et de remplacement.

13. Il est préférable d'utiliser une instruction de branchement sélectif (annotation de traduction : changer de casse) plutôt que d'utiliser plusieurs instructions if, else if.

14. Utiliser @ pour bloquer les messages d'erreur est très inefficace.

15. Ouvrez le module mod_deflate d'Apache.

16. La connexion à la base de données doit être fermée une fois son utilisation terminée.

17.$row[‘id’] est 7 fois plus efficace que $row[id].

18. Les messages d'erreur coûtent cher.

19. Essayez de ne pas utiliser de fonctions dans les boucles for. Par exemple, for ($x=0; $x prop++) est 3 fois plus lent que l'incrémentation d'une variable locale.

 23. 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.

 24. Le simple fait de définir une variable locale sans l'appeler dans une fonction ralentira également la vitesse (au même titre que l'incrémentation d'une variable locale). PHP vérifiera probablement si une variable globale existe.

25. 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 le test de la méthode) et il n'y a eu aucun changement dans les performances.

 26. Les méthodes des classes dérivées s'exécutent plus rapidement que les mêmes méthodes définies dans les classes de base.

 27. L'appel d'une fonction vide avec un paramètre prend le même temps que l'exécution de 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.

28. Utilisez des guillemets simples au lieu de guillemets doubles pour entourer les chaînes, ce qui sera plus rapide. Étant donné que PHP recherchera les variables dans une chaîne entourée de guillemets doubles, les guillemets simples ne le feront pas. Bien entendu, vous ne pouvez le faire que si vous n'avez pas besoin d'inclure des variables dans la chaîne.

29. Lors de la sortie de plusieurs chaînes, utilisez des virgules au lieu de points pour séparer les chaînes, ce qui est plus rapide. Remarque : seul echo peut faire cela. Il s'agit d'une "fonction" qui peut prendre plusieurs chaînes comme paramètres (Annotation : le manuel PHP indique que echo est une structure de langage, pas une fonction réelle, la fonction est donc placée entre guillemets doubles.) .

 30. 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.

 31. À 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.

32. 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.

 33. 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 la fonction passera par de nombreuses étapes, comme les lettres minuscules (Annotation : fait référence au nom de la fonction minuscule, PHP ne distingue pas le cas des noms de fonctions), la recherche de hachage sera exécutée 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"$$ }
Copier après la connexion



L'appel d'isset() s'avère être plus rapide que strlen(), car contrairement à ce dernier, isset(), en tant que construction de langage, signifie que son exécution ne nécessite pas de recherche de fonction ni de minuscules. courrier. 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.


 34. 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. La 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 ne font pas les mêmes optimisations et il existe un grand nombre de fournisseurs d'accès Internet (FAI) et de fournisseurs d'accès Internet (FAI) qui le font. aucun serveur d'optimisation de commandes n'est installé.


 35. Il n'est pas nécessaire qu'il soit 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.


 36. Il n'est pas nécessaire d'utiliser des classes pour implémenter toutes les structures de données, les tableaux sont également utiles.


37. Ne subdivisez pas trop la méthode, réfléchissez bien au code que vous comptez réellement réutiliser


38. Quand vous en avez besoin, vous êtes toujours capable ? pour décomposer le code en méthodes.


 39. Essayez d'utiliser un grand nombre de fonctions intégrées à PHP.


 40. S'il y a un grand nombre de fonctions chronophages dans le code, vous pouvez envisager de les implémenter à l'aide d'extensions C.


 41. Profilez votre code. Le vérificateur vous dira quelles parties du code prennent combien de temps. Le débogueur Xdebug comprend des programmes d'inspection qui évaluent l'intégrité globale de votre code et révèlent les goulots d'étranglement dans votre code.


 42.mod_zip peut être utilisé comme module Apache pour compresser instantanément vos données et réduire le volume de transmission de données de 80 %.

Recommandations associées :

Parcours d'apprentissage PHP et 10 compétences en optimisation PHP

Compétences en optimisation PHP

Optimisation PHP --- instructions de configuration d'opcache



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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal