Maison >développement back-end >tutoriel php >Le passage par référence est-il toujours plus rapide en PHP ?

Le passage par référence est-il toujours plus rapide en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-08 18:02:02939parcourir

Is Pass-by-Reference Always Faster in PHP?

Le passage par référence est-il plus rapide en PHP (>=5.0) ?

Malgré l'objectif principal du passage par référence en PHP étant une manipulation de variable en dehors de la portée de la fonction, on pourrait spéculer si cela affecte également les performances. PHP utilise Copy On Write pour optimiser la copie d'objets et de tableaux, ce qui devrait éliminer le besoin de passage par référence pour les paramètres qui restent inchangés.

Comparaison des performances

À Pour déterminer l'impact sur les performances, une expérience a été menée avec 100 000 appels de fonction, en passant une chaîne de 20 Ko en paramètre. Deux scénarios ont été testés :

  1. Fonction qui lit/utilise le paramètre
  2. Fonction qui écrit/modifie le paramètre

Résultats

  • Passez par valeur par rapport à la référence pour Lecture/utilisation des paramètres :

    • Passer par valeur : 0,12065005 secondes
    • Passer par référence : 1,52171397 secondes
  • Passez par valeur par rapport à la référence pour Écriture/Modification des paramètres :

    • Passer par valeur : 1,52223396 secondes
    • Passer par référence : 1,52388787 secondes

Conclusions

  1. Le passage par valeur est systématiquement plus rapide que le passage par référence.
  2. Pour les fonctions qui modifient la valeur du paramètre, il n'y a aucune différence de performances pratique entre le passage par valeur et passage par référence.

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