echo VS printf

Voilà le genre de test que j’aurais bien fait si j’avais le temps. Mais nous sommes nombreux sur la toile et il n’est pas toujours nécessaire de tout faire soi-même 😉

Si vous êtes développeur, vous connaissez certainement le sempiternel débat qui oppose les fonctions PHP echo et printf ? Et bien voilà de quoi vous mettre sous la dent : un test complet sur les performances des différentes possibilités de concaténations de chaînes et de leur affichage.

Au final, echo s’avère plus rapide que printf mais la différence n’est pas énorme. En revanche, le test met en exergue l’impact de l’utilisation des guillemets (doubles quotes dans le jargon) sur la rapidité de traitement face aux chaînes contenues entres apostrophes (simples quotes…). Et là, les différences sont bien plus importantes : que vous utilisiez l’une ou l’autre des fonctions, l’utilisation des guillemets plombe le traitement d’une seconde (sur un échantillonnage de 500 000 concaténations) ! Une seule chose à retenir (on ne le dira jamais assez), utilisez dans la mesure du possible des chaînes à apostrophes dans vos scripts PHP !

Pour la petite histoire, sachez que lorsque vous utilisez une chaîne entre guillemets, PHP lance son moteur d’analyse de chaînes pour remplacer les éventuels caractères spéciaux (\n, \t, \r…) ou remplacer les variables que vous auriez pu placer directement au sein de la chaîne. Dans une chaîne entre apostrophes, PHP n’effectue pas d’analyse de chaîne et la traite « brute de fonderie » ; d’où le gain temporel.

Bref que du bon pour un article qui vient relancer un site qui manquait d’activité ces derniers temps et qui vient de subir un relooking plutôt sympa 😉 . Affaire à suivre !

L’article chez EXinsidePHP »

3 Comments

  1. Steuf:

    Bonsoir,

    Heureux de voir que certains suivent toujours EXinsidePHP malgré un certain passage a vide pendant 1 ans et demie voir… 2ans.

    Je voulais juste réagir pour dire que je ne suis pas allé jusqu’à dire qu’echo et printf étaient équivalent. printf est tout de même plus lent, mais il est certain que l’utilisation de doubles quotes est beaucoup plus pénalisant ;). Après je dirais aussi que l' »écriture » ne favorise pas printf, il est plus long d’écrire une concaténation avec celui-ci (Et de s’y repérer lorsque que l’on a beaucoup de variables à concaténer…), hé oui les développeurs sont des éternels fainéants 🙂

    Sinon effectivement EXinsidePHP renait (D’un peu nul part j’avoue), des articles de ce genre il risque d’y en avoir beaucoup, je pense que le prochain sur le thème de l’optimisation mettra en relief la différence entre les fonction ereg et preg, et il y a matière à discuter :). Pour le reste EXlor, EXmail vont évolués (Enfin…). Pour le reste je suis ouvert à toute idée d’article/suggestions etc.

  2. SamRay1024:

    Salut 🙂

    Oups, effectivement, j’ai lu trop vite ! Du coup j’ai rectifié le billet et je l’ai un peu complété.
    Merci !

  3. Cyb:

    J’aurai donné le code 2 avec les virgules gagnant plus nettement que ça moi …

Leave a comment

Merci d'utiliser le forum pour toute demande de support relatif aux ressources proposées sur ce site.