06-03-2007, 09:54 PM
Citation :Bench 10 variables sur 100000 interprétations de chaine :
$a=10
$b='test B'
$c=1/3
$d="test D"
$e=true
$f=false
$g=htmlentities('<B>Coucou</B>')
$h=1e26
$i='coucou '.'test I';
$j=$a.' '.$b." $c $d $e $f $g $h $i"
$res=concaténation des 10 variables, avec un '-' entre chacune d'elles
doubles quotes : $res="$a-$b-$c-$d-$e-$f-$g-$h-$i-$j"; = 1.85771393776
sprintf : $res=sprintf('%d-%s-%f-%s-%b-%b-%s-%e-%s-%s',$a,$b,$c,$d,$e,$f,$g,$h,$i,$j); = 2.51651191711
simples quotes : $res=$a.'-'.$b.'-'.$c.'-'.$d.'-'.$e.'-'.$f.'-'.$g.'-'.$h.'-'.$i.'-'.$j; = 1.98748111725
avec ce code :
Code PHP :
<?php
Bench 10 variables sur 100000 interprétations de chaine :<br>
$a=10<br>
$b='test B'<br>
$c=1/3<br>
$d="test D"<br>
$e=true<br>
$f=false<br>
$g=htmlentities('<B>Coucou</B>')<br>
$h=1e26<br>
$i='coucou '.'test I';<br>
$j=$a.' '.$b." $c $d $e $f $g $h $i"<br>
$res=concaténation des 10 variables, avec un '-' entre chacune d'elles<br><br>
<?php
/**
*
*
* @version $Id$
* @copyright 2007
*/
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
echo 'doubles quotes : '.htmlentities('$res="$a-$b-$c-$d-$e-$f-$g-$h-$i-$j";').' = ';
$time_start = microtime_float();
for($i=0;$i<100000;$i++){
$res="$a-$b-$c-$d-$e-$f-$g-$h-$i-$j";
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo $time."<br>\n";
echo 'sprintf : '.htmlentities('$res=sprintf(\'%d-%s-%f-%s-%b-%b-%s-%e-%s-%s\',$a,$b,$c,$d,$e,$f,$g,$h,$i,$j);').' = ';
$time_start = microtime_float();
for($i=0;$i<100000;$i++){
$res=sprintf('%d-%s-%f-%s-%b-%b-%s-%e-%s-%s',$a,$b,$c,$d,$e,$f,$g,$h,$i,$j);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo $time."<br>\n";
echo 'simples quotes : '.htmlentities('$res=$a.\'-\'.$b.\'-\'.$c.\'-\'.$d.\'-\'.$e.\'-\'.$f.\'-\'.$g.\'-\'.$h.\'-\'.$i.\'-\'.$j;').' = ';
$time_start = microtime_float();
for($i=0;$i<100000;$i++){
$res=$a.'-'.$b.'-'.$c.'-'.$d.'-'.$e.'-'.$f.'-'.$g.'-'.$h.'-'.$i.'-'.$j;
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo $time."<br>\n";
?>