Maison > développement back-end > tutoriel php > Programmation efficace : introduction aux directives d'optimisation PHP

Programmation efficace : introduction aux directives d'optimisation PHP

不言
Libérer: 2023-04-04 10:58:01
avant
2523 Les gens l'ont consulté

Ce que cet article vous apporte concerne la programmation à haute efficacité : les directives d'optimisation PHP, qui ont une certaine valeur de référence, peuvent s'y référer. J'espère que cela vous sera utile.

  • Utiliser moins d'expressions régulières

str_replace  la fonction est beaucoup plus rapide que preg_replace , strtr Fonction est plus rapide que str_replace .

strpbrk()、strncasecmp()、strpos()、strrpos()、stripos()、strripos()。
Copier après la connexion
  • Remplacement de caractères

Le remplacement de caractères str_replace est plus rapide que le remplacement régulier preg_replace, mais strtr est plus rapide que str_replace 1/4.

De plus, ne faites pas de substitutions inutiles, str_replace allouera de la mémoire pour ses paramètres même s'il n'y a pas de substitution. Très lent !

Utilisez strpos pour rechercher d'abord (très rapidement) pour voir s'il doit être remplacé, et si c'est le cas, remplacez-le.

Si un remplacement est nécessaire, l'efficacité est presque la même, la différence est d'environ 0,1 %.

Si aucun remplacement n'est nécessaire : utilisez le strpos 200 % plus rapidement.

  • Utilisez la variable $_SERVER

Si vous avez besoin d'obtenir le temps d'exécution du script, $_SERVER['REQUSET_TIME'] est meilleur que time().

L'un est prêt à l'emploi et peut être utilisé directement, et l'autre nécessite le résultat de la fonction.

  • Utilisez ++$i pour incrémenter

lors de l'exécution de l'incrémentation de la variable $i ou En diminuant, $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.

  • Compresser les grandes chaînes

Utilisez gzcompress() et gzuncompress() pour compresser les grandes chaînes Compressez et décompressez, puis stocker et récupérer la base de données .

Cette fonction intégrée utilise l'algorithme gzip pour compresser les chaînes 90%.

  • Lire le contenu du fichier

Vous pouvez utiliser file_get_contents() au lieu de file(), fopen(), , feof() et d'autres séries de méthodes, essayez d'utiliser fgets(). file_get_contents()

  • sortie d'écho

la chaîne d'écho utilise une

virgule au lieu d'un connecteur point pour le rendre plus rapide .

Bien que

soit une construction de langage, pas une vraie fonction. echo

Cependant, il peut transmettre plusieurs chaînes séparées par des virgules comme paramètres de "fonction", ce sera donc plus rapide.

et des fonctions de chargement automatique mal conçues entraîneront une réduction de son efficacité autoload

Alors, essayez d'éviter de l'utiliser. méthodes magiques telles que

, qui font l'objet de discussions__autoload

  • Bloquer les informations sensibles

Utilisez le error_reporting( ) fonction pour empêcher que des informations potentiellement sensibles soient affichées aux utilisateurs.

Idéalement, le rapport d'erreurs devrait être complètement désactivé dans le fichier php.ini.

Si vous utilisez un hôte virtuel partagé, le php.ini ne peut pas être modifié, il est préférable d'ajouter la fonction error_reporting().

est placé dans la première ligne de chaque fichier de script, ou chargé avec

, ce qui peut protéger efficacement les requêtes et chemins SQL sensibles et ne sera pas affiché lorsque des erreurs se produisent require_once()

  • Code PHP pur sans balise de fin

Si le contenu du fichier est du code PHP pur, il est préférable de supprimer la balise de fin PHP

à la fin du fichier. ?>Cela peut empêcher PHP d'ajouter accidentellement des espaces ou des nouvelles lignes après la balise de fin, ce qui entraînerait PHP à commencer à afficher ces espaces, et il n'est pas prévu de les afficher dans le script pour le moment. <p></p> <ul class=" list-paddingleft-2"><li><p>Ne jamais utiliser <strong> et <code>register_globalsmagic quotes

Ce sont deux fonctions très anciennes, dans Cela pourrait avoir C'était une bonne approche à l'époque (il y a dix ans), mais cela ne semble plus être le cas aujourd'hui.

Les anciennes versions de PHP activeront ces deux fonctionnalités par défaut une fois installées, ce qui peut provoquer des failles de sécurité, des erreurs de programmation et d'autres problèmes.

Par exemple, les variables ne seront créées que lorsque l'utilisateur saisira des données, etc.

Ces deux fonctionnalités ont été abandonnées depuis PHP 5.4.0, chaque programmeur devrait donc éviter de les utiliser.

Si vos programmes antérieurs ont utilisé ces deux fonctions, supprimez-les au plus vite.

  • Utiliser des chemins absolus

Essayez d'utiliser des chemins absolus dans

et include. require

S'il contient un chemin relatif, PHP parcourra pour trouver le fichier dans

. L’utilisation de chemins absolus évitera de tels problèmes et prendra moins de temps pour résoudre le chemin. include_path

Essayez de ne pas utiliser require_once et include_once pour inclure des fichiers. Ils ont un processus supplémentaire pour déterminer si le fichier est référencé. Essayez de ne pas l'utiliser si possible.

est remplacé par les méthodes require et include.

  • Les fonctions sont plus rapides que les méthodes de classe

L'appel d'une fonction avec un seul paramètre et un corps de fonction vide coûte du temps est égal à 7-8 fois $localvar++ opérations.

La méthode de classe avec la même fonction nécessite environ 15 $localvar++ opérations.

  • Utiliser les méthodes de sous-classe

Mettez uniquement les méthodes réutilisables dans la classe de base, essayez de mettre d'autres fonctions dans la sous-classe Implémentée dans une classe, les performances de la méthode dans la sous-classe sont meilleures que celles de la classe de base.

  • Passer les paramètres par référence

Utiliser la référence d'adresse de paramètre pour obtenir plusieurs valeurs de retour de la fonction, ce qui est préférable à la transmission de paramètres par référence. Le transfert de valeur est efficace. La méthode consiste à ajouter & avant la variable paramètre.

  • Rendez-la aussi statique que possible

Si une méthode peut être statique, déclarez-la comme statique, la vitesse peut être amélioré 1/4, même lorsque j'ai testé, cela s'est amélioré de près de trois fois.

La principale différence d'efficacité entre les méthodes statiques et non statiques est la mémoire. Les méthodes statiques génèrent de la mémoire au démarrage du programme et les méthodes d'instance (méthodes non statiques) génèrent de la mémoire pendant l'exécution du programme.

Ainsi, les méthodes statiques peuvent être appelées directement, tandis que les méthodes d'instance doivent d'abord créer une instance puis les appeler. Les méthodes statiques sont très rapides, mais trop de méthodes occuperont de la mémoire . .

Tout langage fonctionne sur la mémoire et le disque. Quant à savoir s'il est orienté objet ou non, c'est juste une question de couche logicielle. La couche inférieure est la même, mais la méthode d'implémentation est différente.

La mémoire statique est continue car elle est générée au début du programme, tandis que les méthodes d'instance s'appliquent à l'espace discret, donc bien sûr, elle n'est pas aussi rapide que les méthodes statiques.

Les méthodes statiques appellent toujours la même mémoire. L'inconvénient est qu'elles ne peuvent pas être détruites automatiquement, mais l'instanciation peut être détruite.

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:
php
source:csdn.net
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