Maison > développement back-end > tutoriel php > Comment améliorer la vitesse d'exécution de PHP

Comment améliorer la vitesse d'exécution de PHP

小云云
Libérer: 2023-03-21 19:56:01
original
3542 Les gens l'ont consulté

Cet article vous explique principalement comment améliorer la vitesse d'exécution de PHP. Il existe plus d'une cinquantaine de méthodes au total, j'espère qu'il pourra aider tout le monde.

1, Si vous pouvez définir la méthode de classe comme statique, essayez de la définir comme statique , sa vitesse augmentera près de 4 fois.
2, $row['id'] La vitesse de est $row[id ] est 7 fois.
3, écho est plus rapide que imprimer , et utilisez Plusieurs paramètres d'écho
(Annotation : fait référence à l'utilisation de virgules au lieu de points ) Remplacez la concaténation de chaînes, telle que echo$str1,$str2.
4 Déterminez le nombre maximum de boucles avant d'exécuter la boucle for . chaque boucle. Utilisez
foreach à la place.
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, __chargement automatique.
7, require_once() est cher.
8, inclure fichiers autant que possible car cela évite le besoin de PHP Allez sur include_path pour trouver le fichier
plus rapidement et le temps requis pour analyser le chemin du système d'exploitation sera moindre.
9, Si vous voulez savoir quand le script commence à s'exécuter(Annotation : c'est-à-dire que le serveur reçoit le client request ) time, utiliser
$_SERVER['REQUEST_TIME'] est meilleur 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 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, alors vous pouvez envisager d'écrire une section de remplacement supplémentaire. . Codez pour que chaque paramètre passé soit un caractère, au lieu d'écrire simplement une ligne de code Acceptez les tableaux comme paramètres de requête et de remplacement.


13
, utilisez l'instruction de branchement sélectif (Annotation : c'est-à-dire changer de casse) Mieux que d'utiliser plusieurs déclarations if, else if .
14
, utiliser @ pour bloquer les messages d'erreur est très inefficace, extrêmement inefficace. 15, ouvrez le module apache mod_deflate , vous pouvez parcourir le la page Web accélère plus efficacement.
16. La connexion à la base de données doit être fermée une fois son utilisation terminée. N'utilisez pas de connexions longues.
17. Les messages d'erreur coûtent cher.
18. L'augmentation des variables locales dans la méthode est la plus rapide. Presque aussi rapide que d’appeler des variables locales dans une fonction.
19. L'augmentation d'une variable globale est 2 fois plus lente que l'incrémentation d'une variable locale.
20, incrémente une propriété d'objet (telle que : $this->prop++) est 3 fois plus lent que l'incrémentation d'une variable locale.
21, L'incrémentation d'une variable locale non définie est plus lente que l'incrémentation d'une variable locale prédéfinie9 à 10 fois.
22 Le simple fait de définir une variable locale sans l'appeler dans une fonction ralentira également la vitesse ( dans la mesure où Équivaut à incrémenter une
variable locale
). PHP vérifiera probablement si des variables globales existent.
23, les appels de méthodes semblent être indépendants du nombre de méthodes définies dans la classe, car je ( avant de tester la méthode Après cela, )a ajouté
et a ajouté
10 méthodes, mais il n'y a aucun changement dans les performances.
24, 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.
25 Appeler 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
fois. Un appel de méthode similaire nécessite près de
15 opérations d'incrémentation de variable locale.
26, Apache prend plus de temps pour analyser un script PHP que L’analyse d’une page HTML statique est plus lente de 2 à 10 fois.
Utilisez autant que possible des pages
HTML statiques et utilisez moins de scripts.
27, À moins que le script puisse être mis en cache, il sera recompilé à chaque appel. L'introduction d'un ensemble de mécanismes de mise en cache PHP
peut généralement augmenter
25 % à 100 % performances pour éviter les frais généraux de compilation.
28, essayez de mettre en cache, vous pouvez utiliser memcached. memcached est un système de mise en cache d'objets mémoire haute performance,
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 opcodes (OP code) est utile,
afin que le script n'ait pas besoin d'être recompilé à chaque requête.
29, Lorsque vous utilisez une chaîne et que vous devez vérifier si sa longueur répond à certaines exigences, vous utiliserez naturellement strlen()
Fonction
. Cette fonction s'exécute assez rapidement car elle ne fait aucun calcul et renvoie simplement le nombre intégré zval (C > structure de données, utilisé pour stocker la longueur de chaîne connue stockée dans la variable PHP
). Cependant, puisque strlen() est une fonction, sera quelque peu lent car l'appel de fonction passera par de nombreuses étapes, telles que les lettres minuscules (
Note de traduction : cela signifie que le nom de la fonction est en minuscules , PHP
Le nom de la fonction n'est pas sensible à la casse ), la recherche de hachage sera effectuée avec la fonction appelée. Dans certaines situations, vous pouvez utiliser l'astuce isset()
pour accélérer l'exécution de votre code. Appeler isset() s'avère être plus rapide que strlen(), car est différent de ce dernier en ce sens isset()
en tant que construction de langage signifie que son exécution ne nécessite pas de recherche de fonction ni de lettres minuscules. 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ément ou de la décrémentation de la variable $i , $i++ sera plus lent que ++$i . Cette différence est PHP spécifique et ne s'applique pas aux autres langages, merci donc de ne pas modifier votre C
ou Java coder et s'attendre à ce qu'ils soient instantanément plus rapides est inutile. ++$i
est plus rapide car il ne nécessite que 3 instructions(opcodes) , $i++ nécessite 4 instructions. L'incrément postfixé crée en fait une variable temporaire qui est ensuite incrémentée. L'incrément de préfixe incrémente directement sur la valeur d'origine. Il s'agit d'une forme d'optimisation, tout comme ce que fait l'optimiseur
PHP
de Zend . C'est une bonne idée de garder cette optimisation à l'esprit, car tous les optimiseurs d'instructions ne font pas la même optimisation, et il existe de nombreuses instructions qui n'ont pas d'optimisation d'assemblage. (FAI) et serveurs.
35
, Ce n'est pas forcément orienté objet
(POO), l'orienté objet est souvent très coûteux, chaque méthode et les appels d'objets consommeront 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 très utiles. 37
, Ne subdivisez pas trop les méthodes, réfléchissez bien aux codes que vous envisagez réellement de réutiliser
?38 , Lorsque vous en avez besoin, vous pouvez toujours diviser 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 d'utiliser l'extension C . pour les mettre en œuvre.
41, évaluez et inspectez (profil) votre code. Le vérificateur vous dira quelles parties du code prennent combien de temps.
42, mod_zip peut être utilisé comme module Apache pour compresser instantanément vos données , et peut réduire le volume de transmission de données de
80 %.
43, vous pouvez utiliser file_get_contents au lieu de file, fopen, feof, fgets et d'autres séries de méthodes, essayez
Utilisez
file_get_contents car c'est bien plus efficace ! mais soyez prudent file_get_contents
Problème de version PHP à l'ouverture d'un URL fichier;
44
, essayez de faire 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 non plus ;
45
, optimisez les instructions Select SQL et effectuez le moins de Insérer, autant que possible Mettre à jour Fonctionnement;
46
, utiliser PHP fonctions internes(Mais pour trouver une fonction qui n'existe pas en PHP , j'ai perdu du temps qui aurait pu écrire une fonction personnalisée, l'expérience Le problème est
!);47
. Ne déclarez pas de variables à l'intérieur de la boucle, en particulier les grandes variables : Objet ( Cela ne fonctionne pas semble être le cas. Juste PHP devrait prêter attention à la question
?) ; 48
, essayez de ne pas pour intégrer des boucles dans des tableaux multidimensionnels Définir l'affectation;49
, n'utilisez pas d'expressions régulières lorsque vous pouvez utiliser PHP la fonction de manipulation de chaîne interne ;50
, foreach est plus efficace, essayez d'utiliser foreach Au lieu de while et pour boucle;51
, utilisez des guillemets simples Remplacez les chaînes de guillemets doubles ;52
, " par i+= 1 remplace i=i+1, qui est conforme aux habitudes de c/c++ et est plus efficaces . »;53
, pour les globales , elles doivent être unset() lorsqu'il est utilisé.

Recommandations associées :

Partage de quelques conseils pour améliorer la vitesse d'exécution de php

Comment améliorer la vitesse d'exécution de php Vitesse

Comment améliorer la vitesse d'exécution de 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!

É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