ねこさんとへびさんの新人技術ブログ

新人エンジニアのねこさんとへびさんの、技術向上のためのブログです。

Tips!for文の条件式に関数を使うとパフォーマンスが落ちる - PHP

for文の条件式に変数を使った場合と、関数を使った場合と比較すると前者の方が処理が速くなります。

これよりも…

<?php
for ($i = 0; $i < count($data); $i++) {
    // 処理
}

こっちのが速い

<?php
$cnt = count($data);
for ($i = 0; $i < $cnt; $i++) {
    // 処理
}

計測してみます。

<?php

$start = microtime(true);
$data = range(1, 1000000);
for ($i = 0; $i < count($data); $i++) {
    $data2[] = $data[$i];
}
$pasttime = microtime(true) - $start;
error_log($pasttime);

実行経過: $pasttime
一回目: 0.098823070526123
二回目: 0.097952127456665
三回目: 0.093841075897217
四回目: 0.092334032058716
五回目: 0.095686912536621

<?php

$start = microtime(true);
$data = range(1, 1000000);
$cnt = count($data);
for ($i = 0; $i < $cnt; $i++) {
    $data2[] = $data[$i];
}
$pasttime = microtime(true) - $start;
error_log($pasttime);

実行経過: $pasttime
一回目: 0.059938907623291
二回目: 0.061800003051758
三回目: 0.057307004928589
四回目: 0.059583902359009
五回目: 0.057235956192017

(byへびさん)