2013年1月2日水曜日

php の 変数と定数の比較2

Writeに引き続き
Readを検証

■ 検証2 Read

以下のコードで検証を行う
比較を行わせることで READ を発生させる

DEFINE read_test1.php
<?php
define('VALUE', 99999999);
for ($i = 0; $i < 1000000; $i++) {
        if ($i < VALUE) {
        }
}
echo memory_get_usage();
?>

変数 read_test2.php
<?php
$VALUE = 99999999;
for ($i = 0; $i < 1000000; $i++) {
        if ($i < $VALUE) {
        }
}
echo memory_get_usage();
?>

結果
$ time php read_test.php
620600
real    0m0.289s
user    0m0.281s
sys     0m0.008s

$ time php read_test2.php
620328
real    0m0.164s
user    0m0.153s
sys     0m0.010s

メモリの使用量が違うのは前回の検証結果でわかっていたこと
参照時は変数のほうが早いことがわかった

ループの中での条件判定等でDEFINE参照するよりも
外側でいったん変数に格納しループ内判定処理に持ち込むのがよいと思われる

0 件のコメント:

コメントを投稿