Maison > Article > développement back-end > Introduction aux méthodes d'optimisation du code PHP (graphiques et texte)
Le contenu de cet article est une introduction aux méthodes d'optimisation du code PHP (images et textes). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Il existe généralement plusieurs façons d'insérer des données dans des tableaux en PHP :
Attribuer des valeurs directement lors de la définition
$arr = array(‘apple’, ’banana’);
Utiliser les opérations sur les variables de tableau
$arr = array(); $arr[] = ‘apple’; $arr[] = ‘banana’;
Utilisez array_push() pour insérer
$arr = array(‘apple’); array_push($arr, ‘banana’, ‘orange’);
Dans la plupart des cas, dans le projet, nous obtenons d'abord les données de la base de données, puis les convertissons sous forme de tableau. Dans le premier cas, nous le faisons directement. définir le tableau lorsque l'affectation ne convient souvent que pour les situations où la quantité de données est petite et connue, il n'y a donc pas d'optimisation du code. Nous parlons principalement des deuxième et troisième types.
Concernant l'utilisation de array_push, je ne le présenterai pas en détail. Veuillez lire vous-même la documentation officielle (https://secure.php.net/manual/en/function.array-push.php).
Comparaison des performances
Nous avons utilisé PHP 7.2 pour les tests et n'avons procédé à aucune optimisation de la configuration. Méthode de test : Définissez un tableau et insérez 100 000 enregistrements en utilisant respectivement les deuxième et troisième méthodes. Le code est à peu près le suivant :
Le La fonction convert est utilisée pour vérifier l'utilisation de la mémoire. Les résultats d'exécution sont les suivants :
En exécutant le code ci-dessus plusieurs fois, vous peut constater que le tableau est utilisé directement. L'affectation des variables prend environ 0,0045, tandis que l'utilisation de array_push prend environ 0,006. La mémoire consommée est la même, car les deux ont 100 000 enregistrements.
En comparant les deux méthodes, nous avons constaté que la deuxième méthode est en effet plus rapide que l'appel de array_push, car l'appel de fonction prend un certain temps dans chaque boucle. Cependant, en regardant simplement le test ci-dessus, je ne pense pas que ce soit le cas. la deuxième méthode est meilleure que la troisième méthode. La rapidité avec laquelle cette méthode est complètement négligeable.
En effet, ce type d'optimisation n'est pas différent de l'absence d'optimisation dans la plupart des applications, mais lorsque l'application atteint le goulot d'étranglement, chaque optimisation discrète peut améliorer considérablement les performances, et notre La structure du tableau dans le test est très simple. Dans les projets réels, le type de données n'est pas si unique. Il peut s'agir d'un tableau imbriqué et la taille du tableau peut être supérieure à 100 000.
Regardons la différence entre les deux. array_push() est un appel de fonction, et l'autre ne l'est pas, c'est-à-dire que du point de vue de la taille du code, les deux sont identiques. du point de vue de la structure du tableau, pendant le test Nous n'utilisons pas d'index, et ils commencent tous à 0 par défaut. Si vous souhaitez utiliser key => value pour insérer des données, array_push() n'est pas facile à gérer. Dans ce cas, il est très pratique d’utiliser la méthode 2 : $array1[$key ] => $x.
J'ai déjà dit que array_push() n'est pas bon, mais parfois array_push est toujours très utile. Par exemple, lorsque nous voulons insérer plusieurs éléments à la fois, nous pouvons l'utiliser comme ceci :
$arr = array(‘a’, ’b’); array_push($arr, ‘c’, ‘d’); // $arr = array(‘a’, ’b’, ‘c’, ‘d’);
Comme le montre la comparaison ci-dessus, il existe de nombreuses méthodes d'interpolation de tableau en PHP, bien que chacune. La méthode est similaire, il est important de comprendre chaque méthode. Quand l’utiliser est encore nécessaire.
[Cours recommandé : Tutoriel vidéo 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!