jeudi 21 juillet 2011

Optimiser la tache la plus basique de PHP: print/echo

Quand on cherche les moindres petits gains de perfs dans une page PHP, tout est bon à prendre. Même certaines syntaxes qui peuvent paraître évidentes sont optimisables.

La fonction système print est à éviter si vous ne vous servez pas du retour de la fonction. En effet, print contrairement à echo, retourne aussi en valeur ce qu'il envoie dans le buffer de sortie ($var = print(toto);).

La fonction système print est généralement plus lente que echo, pour plusieurs raisons : elle retourne une valeur, ce qui coûte du temps machine (et ce temps est gaspillé si vous ne récupérez pas cette valeur) ; print est aussi plus long à écrire (une lettre en plus...), ce qui peut paraître exagéré, mais au final vous gagnez en taille de fichier PHP et donc en temps de parsing de fichier lors de l'exécution. Utile si vous utilisez ces fonctions de nombreuses fois. Pour la même raison, les parenthèses (qui sont optionnelles) autour des paramètres de ces fonctions système sont à éviter, car sémantiquement inutiles.

Enfin, la concaténation de chaînes de caractères dans un echo est optimisable (echo "bonjour"."madame";) en remplaçant le point de concaténation par une virgule (echo "bonjour", "madame";) car oui, echo peut prendre un nombre de paramètres indéfini, et cela évite alors d'effectuer une concaténation de chaînes en mémoire avant de les afficher sur la sortie. Utile quand vous affichez de grandes chaînes de caractères.

Les gains ne sont pas énormes (de l'ordre du petit pourcent) mais surtout variables, selon la nature des éléments passés à ces fonctions système. Il est temps de prendre les meilleurs habitudes, cela ne coûte rien :)

Aucun commentaire:

Enregistrer un commentaire