Maison >développement back-end >tutoriel php >Introduction détaillée à l'optimisation des performances PHP

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

黄舟
黄舟original
2017-03-20 10:14:31977parcourir

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;
  }
}

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();

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;

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;

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']);

É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);
}

Processus :

INSERT INTO users (first_name,last_name) VALUES("John", "Doe")

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);

Processus :

INSERT INTO users (first_name,last_name) VALUES("John", "Doe"),("Jane", "Doe")...
  • 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!

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