Introduction détaillée à l'optimisation des performances PHP

黄舟
Libérer: 2023-03-06 19:26:01
original
973 Les gens l'ont consulté

PHP est un langage de script très populaire. Aujourd'hui, de nombreuses entreprises (Sina, Youku, Baidu, Sohu, Taobao, etc.) utilisent ce langage pour le développement de sites Web. Avec cet article, j'espère juste améliorer les performances de vos scripts php. N'oubliez pas que les performances de vos scripts PHP dépendent souvent de votre version de PHP, de l'environnement de votre serveur Web et de la complexité de votre code.

Optimisez les goulots d'étranglement dans votre code

Hoare a dit un jour que "l'optimisation prématurée est la racine de tous les malheurs". Lorsque vous souhaitez accélérer le fonctionnement de votre site Web, vous devez procéder à une optimisation. Que devez-vous faire avant de modifier votre code ? Qu'est-ce qui ralentit le système ? Vous pouvez optimiser votre php grâce aux conseils suivants et à d'autres méthodes, qui peuvent être des raisons de base de données ou de réseau. En optimisant votre code php, vous pouvez essayer de découvrir les goulots d'étranglement de votre système !

Mettez à niveau votre version PHP

Les membres de votre équipe ont suggéré que le moteur PHP a connu de nombreuses améliorations symboliques des performances au fil des ans. Si votre serveur Web exécute toujours une ancienne version, telle que php3 ou php4. Ainsi, avant d’essayer d’optimiser votre code, vous devez approfondir les mises à niveau entre les versions.

Utilisez la mise en cache

Utilisez un module de mise en cache (tel que Memcache) ou un système de modèles (tel que Smarty) pour le traitement de la mise en cache. Nous pouvons améliorer les performances du site Web en mettant en cache les données les résultats de la bibliothèque et en extrayant les résultats des pages.

Utiliser le tampon de sortie

Lorsque votre script tente d'effectuer un rendu, PHP utilisera le tampon mémoire pour enregistrer toutes les données. La mise en cache peut rendre votre page lente car le tampon est rempli de toutes les données auxquelles il faut répondre avant que le résultat ne soit renvoyé à l'utilisateur. Heureusement, vous pouvez apporter une modification qui oblige PHP à répondre à l'utilisateur avant que le tampon ne se remplisse, ce qui rendra votre site Web plus rapide.

  • Contrôle du cache de sortie

Évitez d'écrire des setters et des getters naïfs

Lorsque vous écrivez des classes PHP, vous pouvez directement manipuler objet propriétés , qui peuvent vous aider à gagner du temps et à améliorer les performances de vos scripts. Plutôt que le genre de passeurs et de getters qui rendent les gens puérils et ridicules.

Voici quelques cas : la classe dog exploite l'attribut name en utilisant setName() et getName().


class dog {
  public $name = '';

  public function setName($name) {
    $this->name = $name;
  }

  public function getName() {
    return $this->name;
  }
}
Copier après la connexion

Remarque : setName() et getName() ne font rien d'autre que stocker et renvoyer l'attribut name.

$rover = new dog();
$rover->setName('rover');
echo $rover->getName();
Copier après la connexion

La définition et l'accès directs à l'attribut name peuvent améliorer les performances de 100 % et réduire le temps de développement !

$rover = new dog();
$rover->name = 'rover';
echo $rover->name;
Copier après la connexion

Il n'y a aucune raison de ne pas copier les variables

Parfois, les PHPers juniors, afin de rendre le code plus "propre", réaffectent souvent une variable déjà définie à une autre variable. Cela entraîne effectivement une double consommation de mémoire (lors du changement de variables), ce qui entraîne une dégradation des performances du script. Par exemple, si un utilisateur insère une variable de 512 Ko dans une autre variable, 1 Mo de mémoire sera consommé.

$description = strip_tags($_POST['description']);
echo $description;
Copier après la connexion

Le code ci-dessus copie les variables sans raison. Il vous suffit de générer des variables en ligne sans consommer de mémoire supplémentaire.

echo strip_tags($_POST['description']);
Copier après la connexion

Évitez de boucler pour effectuer des opérations SQL

Une erreur courante consiste à placer une opération SQL dans une boucle, ce qui entraîne des accès fréquents à la base de données. Plus important encore, cela conduit directement à un faible niveau. exécution du scénario. Dans l'exemple suivant, vous pouvez réinitialiser une opération de boucle sur une seule instruction SQL.

foreach ($userList as $user) {
  $query = 'INSERT INTO users (first_name,last_name) VALUES("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
  mysql_query($query);
}
Copier après la connexion

Processus :

INSERT INTO users (first_name,last_name) VALUES("John", "Doe")
Copier après la connexion

Au lieu de ce schéma de boucle, vous pouvez regrouper les données en une seule opération de base de données.

$userData = array();
foreach ($userList as $user) {
    $userData[] = '("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
 }
$query = 'INSERT INTO users (first_name,last_name) VALUES' . implode(',', $userData);
mysql_query($query);
Copier après la connexion

Processus :

INSERT INTO users (first_name,last_name) VALUES("John", "Doe"),("Jane", "Doe")...
Copier après la connexion
  • Syntaxe MySQL INSERT

Résumé

php dans Il existe encore de nombreuses optimisations en termes de performances. Si vous comprenez mieux cet aspect, vous pouvez en discuter ensemble. Je mettrai également vos bonnes suggestions dans le billet de blog pour référence par d'autres PHPers. En tant que phper, c'est une chose très fière de pouvoir améliorer les capacités de nombreux phpers

. ——Beaucoup de gens considèrent PHP comme un langage populaire. J'espère personnellement que le langage PHP pourra aller plus loin à l'avenir, afin que l'argent entre les mains d'un PHPer soit de plus en plus important !

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