Maison  >  Article  >  développement back-end  >  Partage de connaissances sur l'optimisation du code PHP

Partage de connaissances sur l'optimisation du code PHP

小云云
小云云original
2018-03-05 14:00:311275parcourir

Cet article partage principalement avec vous quelques connaissances sur l'optimisation du code php. L'article résume plus de 40 points de connaissances sur l'optimisation du code. J'espère qu'il pourra aider tout le monde.

1. Ne vous contentez pas de copier des variables

BAD:
$description = $_POST['description'];
echo $description;
GOOD:
echo $_POST['description'];

2. Utilisez des guillemets simples pour les chaînes
3. Utilisez switch/case au lieu de if/else
4 Activez le module mod_deflate d'Apache pour améliorer la vitesse de navigation des pages Web.
5. La connexion à la base de données doit être fermée une fois son utilisation terminée et n'utilisez pas de connexions longues.
Optimiser la génération PHP
1 Si une méthode peut être statique, déclarez-la comme statique, et la vitesse peut être augmentée de 1/4 ;
2. Echo est plus efficace que print, car echo n'en a pas. return value , print renvoie un entier;
3. Définissez le nombre maximum de boucles avant la boucle, pas pendant la boucle, il est préférable d'utiliser foreach à la place
4. unset(), null
5. Évitez d'utiliser des méthodes magiques comme __get, __set, __autoload, etc. ;
6.require_once(), include_once() consomment plus de ressources, require() a une efficacité d'exécution plus élevée ; *
7. Utilisez des chemins absolus dans les inclusions et les exigences, afin de passer moins de temps à analyser les chemins ;
8 Si vous avez besoin d'obtenir le temps entre sexinsex et l'exécution du script, $_SERVER['REQUSET_TIME'] est meilleur que. time( );
9. Si vous pouvez utiliser des fonctions de traitement de caractères, essayez de les utiliser, car l'efficacité est supérieure à celle des expressions régulières ;
10. Le remplacement de caractères str_replace est plus rapide que le remplacement régulier preg_replace, mais strtr vaut 1. /4 plus rapide que str_replace;
11. Si une fonction peut accepter à la fois des tableaux et des caractères simples comme paramètres, comme le remplacement de caractères, et que la liste des paramètres n'est pas trop longue, vous pouvez envisager d'utiliser des instructions de remplacement plus concises pour en remplacer un seul. caractère à la fois,
au lieu de Accepte les tableaux comme paramètres de recherche et de remplacement. Réduisez les grandes choses, 1+1>2;
12. Utiliser @ pour masquer les erreurs réduira la vitesse d'exécution du script ;
13.$row['id'] est 7 fois plus rapide que $row. [id], il est recommandé de le conserver. L'habitude d'ajouter des guillemets aux clés du tableau ;
14. Les messages d'erreur sont très utiles ;
15. N'utilisez pas de fonctions dans les boucles, telles que For($x=). 0; $x 11f10cce239e05870e590e5d5411ba15prop++) est 3 ; fois plus lent que les variables locales ;
19. Créer une variable locale non déclarée est 9 à 10 fois plus lente qu'une variable locale initialisée ;
20. Déclarer une variable globale qui n'est utilisée par aucune fonction réduira également les performances (comme ainsi que déclarer le même nombre de variables locales), et PHP peut aller Vérifier si cette variable globale existe
21. La performance de la méthode n'a rien à voir avec le nombre de méthodes définies dans une classe, car j'en ai ajouté 10. ou plusieurs méthodes à la classe testée (ces méthodes sont avant et après la méthode de test );
22 Les performances de la méthode dans la sous-classe sont meilleures que celles de la classe de base
23. exécuter une fonction avec un seul paramètre et un corps de fonction vide équivaut à 7 à 8 fois l'opération $localvar++, et une méthode similaire (fonction dans la classe) équivaut à environ 15 opérations $localvar++ ;
24. valent mieux que les guillemets doubles lors de la définition de chaînes
25. Lors de la sortie d'une chaîne, utilisez Il est plus rapide d'utiliser des virgules au lieu de points. Remarque : Cela ne fonctionne que pour echo. Cette fonction peut accepter certaines chaînes comme paramètres ;
26. Dans le serveur Apache, une page de script PHP prend au moins 2 à 10 fois plus de temps à générer que la page statique HTML correspondante. Il est recommandé d'utiliser des pages HTML plus statiques et un petit nombre de scripts ;
27. Sauf si un cache est installé, votre script php doit être recompilé à chaque accès. Il est recommandé d'installer un programme de cache PHP, qui peut améliorer considérablement vos performances de 20 à 100 % en supprimant certaines compilations répétées
28. Il est recommandé d'utiliser memcached, un système de mise en cache d'objets de mémoire distribuée hautes performances, pour améliorer les performances des applications réseau dynamiques, réduire la charge sur la base de données ;
29. Utilisez les fonctions ip2long() et long2ip() pour convertir l'adresse IP en un entier et la stocker dans la base de données au lieu d'un caractère. Cela réduit l’espace de stockage de près d’un quart. Dans le même temps, les adresses peuvent être facilement triées et recherchées rapidement ;
30. Utilisez checkdnsrr() pour confirmer la validité de certaines adresses e-mail grâce à l'existence de noms de domaine. Cette fonction intégrée peut garantir que chaque nom de domaine correspond. à une adresse IP ;
31. Si vous utilisez php5 et mysql4.1 ou supérieur, pensez à utiliser la fonction améliorée mysqli_* de mysql_*;
32 Essayez d'utiliser l'opérateur ternaire (?:);
33. Vous voulez voir si PEAR a ce dont vous avez besoin avant de refaire complètement votre projet. PEAR est une énorme bibliothèque de ressources, comme de nombreux développeurs PHP le savent ;
34. Utilisez highlight_file() pour imprimer automatiquement une copie bien formatée du code source de la page ;
35. Utilisez la fonction error_reporting(0) pour éviter. les informations potentiellement sensibles ne soient pas affichées aux utilisateurs. Idéalement, le rapport d'erreurs devrait être complètement désactivé dans le fichier php.ini. Mais si vous utilisez un hôte virtuel partagé et que vous ne pouvez pas modifier
php.ini, alors vous feriez mieux d'ajouter la fonction error_reporting(0) et de la mettre sur la première ligne de chaque fichier de script (ou d'utiliser require_once() pour chargez-le) Cela peut protéger efficacement les requêtes et chemins SQL sensibles contre l'affichage lorsque des erreurs se produisent ;
36. Utilisez gzcompress() et gzuncompress() pour compresser (décompresser) des chaînes de grande capacité et les stocker dans (hors) la base de données. heure. Cette fonction intégrée peut être compressée à 90 % à l'aide de l'algorithme gzip ;
37. Une fonction peut avoir plusieurs valeurs de retour en faisant référence à l'adresse de la variable paramètre. Vous pouvez ajouter un "&" avant la variable pour indiquer de la passer par adresse plutôt que par valeur ;
38.Comprenez parfaitement les « citations magiques » et les dangers de l'injection SQL. J'espère que la plupart des développeurs qui lisent ceci sont déjà familiers avec l'injection SQL.
Cependant, je l'énumère ici car il est absolument essentiel de comprendre si vous le souhaitez. Je n'ai jamais entendu ce terme auparavant, passez tout le reste de la journée à chercher sur Google
et à lire.
39. Utiliser strlen() n'est pas très rapide car il doit appeler d'autres opérations telles que des requêtes en minuscules et en table de hachage. Nous pouvons utiliser isset() pour obtenir des fonctions similaires. isset() est plus rapide que strlen();
40. Concernant l'incrémentation de $i++ ou la décrémentation de $i-- sera légèrement plus lente que ++$i ou --$i. , ceci Il est unique à PHP et ne convient pas aux autres langages
42. La boucle foreach remplace while ou for *
43 Utilisez file_get_contents() pour les gros fichiers, fopen(), fread() pour les petits fichiers<.>44. Méthode d'écriture normale C'est plus rapide que l'encapsulation de méthodes et de classes
Outil VLD pour afficher l'Opcode


Recommandations associées :

Optimisation du code php : php foreach et pour un exemple de test de comparaison de vitesse

Résumé de l'optimisation du code PHP

Optimisation du code PHP et résumé des problèmes liés à PHP

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:
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