07
Aug

PHP Benchmark: echo

Das “echo” der Funktion “print” vorzuziehen ist, wurde schon von etlichen anderen Seiten bestätigt.  Also spar ich mir mal den Vergleich mit print, vllt. komm ich ja ein andermal dazu. Folgende Codes wurden 10000 durchlaufen und das 1000 mal.

Wer’s “echo” nicht verträgt sollte seinen Browser schließen :P

echo '';
MIN: (0.500917ms) - AVG: (0.576797ms) - MAX: (1.579999ms)
echo "";
MIN: (0.514984ms) - AVG: (0.576492ms) - MAX: (1.597166ms)
echo 'a';
MIN: (0.596046ms) - AVG: (0.667298ms) - MAX: (1.843929ms)
echo "a";
MIN: (0.602960ms) - AVG: (0.669166ms) - MAX: (1.822948ms)
echo 'aaa';
MIN: (0.606060ms) - AVG: (0.676097ms) - MAX: (1.902103ms)
echo "aaa";
MIN: (0.624179ms) - AVG: (0.673849ms) - MAX: (1.832962ms)

Fazit

Man sollte die ‘einfachen Anführungszeichen verwenden’ wenn man nur statischen Text ausgeben möchte, da bei den doppelten Anführungszeichen PHP nach zu interpretierenden Variablen sucht. Und wer weniger schreibt ist auch klar im Vorteil, was die Geschwindigkeit angeht ;)

Folgendes habe ich mal der Vollständigkeit halber probiert, was schon von Jan im PHP-Perfomance Bolg angesprochen wurde.

ein echo eines Array Elements ohne Anführungszeichen (falsch)

echo $array[falsch];
MIN: (5.017995ms) - AVG: (5.229190ms) - MAX: (12.83788ms)

ein echo eines Array Elements ohne Anführungszeichen (richtig)

echo $array['richtig'];
MIN: (1.062154ms) - AVG: (1.134105ms) - MAX: (2.156019ms)

Fazit

Wie Jan in seinem Beitrag schon schrieb ist es sinnvoller “sauber” zu Programmieren.

Und wenn wir beim Thema sauber schon sind, wer es streng nimmt könnte meinen das Variablen welche ausgeben bzw. in Abfragen verwendet werden auch existieren sollten, schließlich gibt PHP bei nicht gesetzter aber verwendeter Variable ein NOTICE Error aus, welcher meist aber nie angezeigt wird.

echo einer nicht gesetzten Variable

echo $nix_da;
MIN: (3.187894ms) - AVG: (3.317525ms) - MAX: (9.630918ms)

echo einer gesetzten Variable

echo $da_is_was;
MIN: (0.537157ms) - AVG: (0.608725ms) - MAX: (1.652002ms)

das ganze mal mit if Abfrage allerdings “is da nix” in der Variablen

echo isset($nix_da) ? $nix_da : '';
MIN: (0.956773ms) - AVG: (1.000232ms) - MAX: (2.885103ms)

und nochmal mit gesetzter Variable

echo isset($da_is_was) ? $da_is_was : '';
MIN: (1.220226ms) - AVG: (1.290350ms) - MAX: (3.684043ms)

hinterlasse eine Nachricht