PHPのパフォーマンステスト
最近PHPの見直しをしているついでに、記述の違いでどれだけパフォーマンスが違うかをテストしてみました。
チェックしたのは下記2つ。
・『 $a[ abc ](遅い)』と 『 $a[ ” abc ” ](速い)』
・for文で 『 count()を直接指定(遅い)』と 『 count()の結果を変数に代入して指定(速い)』
処理が遅い記述
for ($i = 0; $i < count($a[abc]); $i++){ $hoge1 += $a[abc][$i]; } [/sourcecode] 処理が速い記述
$count = count($a[“abc”]);
for ($i = 0; $i < $count; $i++){
$hoge2 += $a["abc"][$i];
}
[/sourcecode]
遅い方の記述と速い方の記述を組み合わせてテストしました。下記ページで確認できます。
PHP パフォーマンステスト
なんとこの2つの記述の違いだけで、約10倍近いパフォーマンスの差がでます。
連想配列はきちんとダブルクォート、もしくはシングルクォートで括っていますが、for文にcount()を指定するのはよくやってしまっています。これからは少し手間でもきちんと変数に代入するように気をつけよう…。
他にも記述の違いでのPHPのパフォーマンスがかなり異なるようで、下記サイトを参考にきちんと基本を見直していこうと思います。