PHP高速化 ループの種類
ループがめちゃめちゃ増えて遅い。
回数は減らせないけど早くしたい、forよりwhileらしい。やってみた。
$c = 20000;
for($i=0;$i<10;$i++){
$r = bm('loop_1',$c);
$rary += $r;
$ravg = $rary/$i;
}
echo $ravg;function bm($fn, $c)
{ $time_start = microtime(true);
$fn($c);
$time_end = microtime(true);
$time = $time_end - $time_start;
return sprintf("%.10f",$time);
}
function loop_1($c){
for($i=0;$i<$c;$i++){
filerw($i);
}
}function loop_2($c){
$i=0;
while($i<$c){
filerw($i);
$i++;
}
}function filerw($i){
$fp = fopen("./test.txt", "w");
fwrite($fp, $i . "\n");
fclose($fp);
}
さて結果は・・
for
2.7577489482111
while
2.6113062964556
結果:早くなる。可読性が悪くなるわけでもないのでやる価値はあるかもしれません。