【PHP】プログラムが動いている時間を測りたい

この記事は最新更新日から、5年以上経過しています。

概要

処理時間調べてって言われた

更新履歴

2019-05-10 もっと簡単な方を追加
2018-04-17 マイクロ秒のこと忘れてました。

やったこと

なんかもっといい方法ある気はするんですが…

// 処理にかかった時間を計測する
$api_time = new stdClass();
$api_now = new DateTimeImmutable('now');
$api_time->date = $api_now->format('Y-m-d H:i');
$api_time->start = time();//計測開始(秒単位)
$api_time->start_microtime = microtime(true);//計測開始(マイクロ秒単位、trueにしないと文字列で帰ってくる)

//このへんに時間計測したい処理

$api_time->end_microtime= microtime(true);//計測終了
$api_time->end = time();//計測終了
$api_time->time = $api_time->end - $api_time->start;//かかったミリ秒
$api_time->microtime  = $api_time->end_microtime  - $api_time->start_microtime;//かかったマイクロ病
$api_time->name = __FILE__ . ':' . __LINE__;//実行ファイル位置
error_log( var_export( $api_time, true ), 3, '/var/tmp/api_time.log');


/*
【実行結果としてこういう感じのテキストが延々と追記されます】
stdClass::__set_state(array(
   'date' => '2018-04-17 19:13',
   'start' => 1523959986,
   'start_microtime' => 1523959986.997899,
   'end_microtime' => 1523960029.783833,
   'end' => 1523960029,
   'time' => 43,
   'microtime' => 42.78593397140503,
   'name' => '/var/www/html/test.php:24',
))
*/

もっとかんたんなやつ。
ただ秒数はかりたいだけならこれでいけますよね

//開始
$time = time();

//ここに処理入れる

//終了との差を出力
$time = (time() - $time);
echo $time;