echo vs. print

Oft belächelt, aber immer noch wahr: echo ist schneller als print!



Um das ganze unter realistischen Bedingungen zu testen, wurden alle Caches (APC, ...) deaktiviert und das Outputbuffering in der CLI-Version von php deaktiviert.



Folgender Code dient als Test:

  1. <?php
  2. // Ergebnisse im Array speichern...
  3. $arrRes = array();
  4.  
  5. $time = microtime(true);
  6. for ($i=0; $i<100000; $i++) {
  7.         echo $i;
  8. }
  9. $arrRes['echo'] = microtime(true) - $time;
  10.  
  11. $time = microtime(true);
  12. for ($i=0; $i<100000; $i++) {
  13.         print $i;
  14. }
  15. $arrRes['print'] = microtime(true) - $time;
  16.  
  17. $time = microtime(true);
  18. for ($i=0; $i<100000; $i++) {
  19.         echo ($i);
  20. }
  21. $arrRes['echo()'] = microtime(true) - $time;
  22.  
  23. $time = microtime(true);
  24. for ($i=0; $i<100000; $i++) {
  25.         print ($i);
  26. }
  27. $arrRes['print()'] = microtime(true) - $time;
  28.  
  29. print_r($arrRes);
  30. ?>

Diese Testläufe führen im aktuellen Lauf zu folgenden Werten:

  1. (
  2.     [echo] => 9.266254901886
  3.     [print] => 13.399059057236
  4.     [echo()] => 14.875532150269
  5.     [print()] => 13.882831096649
  6. )

Die Werte variieren je nach sonstiger Auslastung des Testsystems, aber es gibt immer einen klaren Sieger: echo. Die beiden Varianten mit den Klammern sind immer - logischerweise - langsamer als ihre Pendants ohne Klammerung.

Oft als Mythos verschrien, zeigt sich alleine bei der Ausgabe von den wenigen Zahlen eine klare Überlegenheit. Mancher Entwickler sollte im Kleinen beginnen zu optimieren!

In der nächsten Folge testen wir die Geschwindigkeit von Anführungszeichen vs. Hochkommas.

Neuen Kommentar schreiben

Plain text

  • Keine HTML-Tags erlaubt.
  • Internet- und E-Mail-Adressen werden automatisch umgewandelt.
  • HTML - Zeilenumbrüche und Absätze werden automatisch erzeugt.