最適化

処理時間の計測

microtime()関数で、現在のタイムスタンプをマイクロ秒単位で取得できます。よって処理前後でこれの差を求めることで、処理時間を調べられます。結果はfloat型で、単位は[秒]となります。

$start = microtime( TRUE );

// ここで計測対象の処理をする

echo microtime( TRUE ) - $start;

microtime()の引数にTRUEを設定しない場合、結果のタイムスタンプは文字列で返されます。そのときはこのように単純に減算で求めることはできません。なおPHP 5.0より前の環境では、TRUEの設定はできません。

ちなみに、microtime()の構文は次の通りです。

mixed microtime ([ bool $get_as_float = FALSE ] )
PHP: microtime - Manual

実行例

たとえば次のように実行すると、

$start = microtime( TRUE );

// 1000マイクロ秒、つまり0.001秒だけ待つ
usleep( 1000 );

echo microtime( TRUE ) - $start;

結果は

0.0010750293731689

のように出力されます。(ここで0.001となっていないのは、usleep()による誤差です)

PHPのマニュアルから検索