ifのコスト
にわかに気になったので
<?php $st = microtime(true); for ($i=0; $i<10000000; $i++) { } $exetime = microtime(true) - $st; echo $exetime, "\n"; $st = microtime(true); for ($i=0; $i<10000000; $i++) { if(true); } $exetime = microtime(true) - $st; echo $exetime, "\n"; $st = microtime(true); for ($i=0; $i<10000000; $i++) { if(false); } $exetime = microtime(true) - $st; echo $exetime, "\n"; 結果: 0.51084899902344 # for文空回し 0.62090516090393 # if(true) 0.59301400184631 # if(false)
falseの方が早いのだね。
一回あたりのifコストは
if (true) の場合: (0.6209 - 0.5108) / 10000000 #=> 1.101e-8 sec (11.01 nsec) if (false) の場合: (0.5930 - 0.5108) / 10000000 #=> 8.22e-9 sec (8.22 nsec)
約10ナノ秒。小さすぎてよく分からん。