PHPの実行時間を計測する方法を完全ガイド!初心者でもわかるmicrotimeとhrtime
生徒
「PHPのプログラムって、どれくらい時間がかかって動いているか調べることはできますか?」
先生
「できますよ。PHPには、処理にかかった時間を調べるための仕組みがあります。」
生徒
「パソコンをあまり触ったことがなくても理解できますか?」
先生
「大丈夫です。時計を使った例えで、ゆっくり説明していきます。」
1. PHPのスクリプト実行時間とは?
PHPのスクリプト実行時間とは、PHPのプログラムが「動き始めてから終わるまでにかかった時間」のことです。これは、ストップウォッチで料理の時間を測るようなイメージです。プログラムも同じで、「スタート」と「ゴール」の時間を調べて、その差を計算することで、どれくらい時間がかかったかを知ることができます。
PHPのコマンドラインスクリプトでは、処理が速すぎて人間の感覚では分からないことが多いため、実行時間の計測がとても大切になります。
2. なぜPHPで実行時間を計測するの?
PHPで実行時間を調べる理由はたくさんあります。例えば、「処理が遅くて困っている」「どの処理に時間がかかっているか知りたい」といった場面です。特に初心者の方は、プログラムが止まっているのか、時間がかかっているだけなのか分からなくなりがちです。
実行時間を知ることで、プログラムがちゃんと動いているかを確認でき、安心して作業を進められます。
3. microtimeとは?PHPで使える基本の時間計測
microtimeは、PHPで昔から使われている時間計測の関数です。とても細かい時間まで取得できるのが特徴で、秒よりも小さい単位まで分かります。これは、普通の時計ではなく、デジタルストップウォッチのようなものです。
<?php
$start = microtime(true);
sleep(1);
$end = microtime(true);
echo $end - $start;
この例では、最初に時間を記録し、1秒待ってからもう一度時間を記録しています。その差を表示することで、「だいたい1秒かかった」ことが分かります。
1.000123
4. microtime(true)の意味をやさしく解説
trueという言葉は、「数字として時間を返してください」という意味です。これがないと、文字の情報になってしまい、計算が難しくなります。初心者の方は、microtimeは必ずtrueを付けると覚えておくと安心です。
数字として時間をもらうことで、引き算ができ、実行時間を簡単に計算できます。
5. hrtimeとは?より正確な時間計測
hrtimeは、より新しいPHPで使える時間計測の方法です。microtimeよりもさらに正確で、コンピュータ内部の高精度な時計を使っています。例えるなら、研究室で使う精密な計測器のような存在です。
<?php
$start = hrtime(true);
sleep(1);
$end = hrtime(true);
echo $end - $start;
1000000000
この数値は「ナノ秒」という非常に小さな単位です。数字が大きくて驚くかもしれませんが、1秒が約10億ナノ秒だと覚えておくと理解しやすくなります。
6. hrtimeの結果を秒に直してみよう
ナノ秒のままだと分かりにくいので、秒に変換してみます。割り算を使うだけなので、とても簡単です。
<?php
$start = hrtime(true);
usleep(500000);
$end = hrtime(true);
$time = ($end - $start) / 1000000000;
echo $time;
0.5
これで「0.5秒かかった」ということが、はっきり分かります。
7. microtimeとhrtimeの使い分け
初心者の方には、まずmicrotimeがおすすめです。理由は、数字がそのまま秒として扱えるからです。一方で、より細かい処理や正確さが必要な場合は、hrtimeが向いています。
どちらも「時間を測る道具」なので、目的に応じて選ぶことが大切です。
8. PHPコマンドラインで実行時間を測るときの注意点
PHPのコマンドラインスクリプトでは、他のプログラムの影響で時間が少し前後することがあります。そのため、1回の結果だけで判断せず、何度か試してみることが大切です。
実行時間の計測は、プログラムの成長を助ける大切なヒントになります。