Freitag, 30. März 2012

PHP : Singe oder Double - was ist schneller

Bei den Mikrooptimierungen wird seit Jahren immer wieder das Thema angeschnitten was schneller ist - die Verwendung von Single oder Double Quotes, wenn Inhalte aus statischen und dynamischen Teilen zusammengesetzt werden - also Text und $var verbunden wird.

Unter PHP 5.4 sieht das alles etwas anders aus.

Tatsächlich ist es abhängig von der Anzahl der Variablen die man einsetzt.

Handelt es sich nur um eine einzige Variable die man verwendet ist Single im Schnitt schneller.
Handelt es sich um mehrere ist Double die bessere Variante.


Single 2 Vars:6.256103515625E-6
Double 2 Vars:5.9366226196289E-6
Single 1 Vars:5.183219909668E-6
Double 1 Vars:5.3548812866211E-6

Testscript:


$max=50;


$j=99;


$t1=0;


for ($i = 0; $i <= $max; $i++) {
    $start_ = microtime(true);
    $test = 'Dies ist der test'.  $i.' '.$j;
    $ende_ = microtime(true);
    $t1=$t1+ ($ende_ - $start_);


}


$t2=0;


for ($i = 0; $i <= $max; $i++) {
    $start_ = microtime(true);
    $test = "Dies ist der test  $i $j";
    $ende_ = microtime(true);
    $t2=$t2+ ($ende_ - $start_);


}


$t3=0;


for ($i = 0; $i <= $max; $i++) {
    $start_ = microtime(true);
    $test = 'Dies ist der test'.  $i;
    $ende_ = microtime(true);
    $t3=$t3+ ($ende_ - $start_);


}


$t4=0;


for ($i = 0; $i <= $max; $i++) {
    $start_ = microtime(true);
    $test = "Dies ist der test  $i";
    $ende_ = microtime(true);
    $t4=$t4+ ($ende_ - $start_);


}


echo '
Single 2 Vars:'.$t1/$max.'
';
echo '
Double 2 Vars:'.$t2/$max.'
';
echo '
Single 1 Vars:'.$t3/$max.'
';
echo '
Double 1 Vars:'.$t4/$max.'
';

Werden noch mehr Variable eingesetzt, dann ist Double immer mehr von Vorteil.

Es handelt sich - wie immer - um kleinste Zeitanteile die man gewinnen kann, da kann also nur die Summe interessant sein.



Keine Kommentare: