PHP

【PHP】処理時間の計測方法

前の記事の「【PHP】メモリ使用量の確認方法」の流れで、メモリ消費の確認方法だけでなくデバックする際はプログラムの実行時間も気にするなぁ、ということで処理時間を確認するサンプルソースを紹介します。

見出しテキスト

  • プログラムの実行時間の計測方法をご紹介
  • time関数を使用して処理に費やした時間を出力
    ・time関数は実行時のUNIX TIMESTAMP(UNIX時間)を返す
  • 処理開始時点と終了時点のUNIX時間を取得し、差分を取ることで処理時間が分かる

 

サンプルソース

計測する上で必要になるのがtime関数です。このtime関数とは関数を呼び出した時点でのUNIX TIMESTAMP(UNIX時間)を返します。

UNIX TIMESTAMPとは世界で統一されたコンピュータ上の時刻表現の一つで、協定世界時 (UTC) の「1970年1月1日午前0時0分0秒」から何秒経過したかを表します。

例えば「2018年7月27日0時0分0秒」はUNIX時間に直すと「1532617200」となります。これは「1970年1月1日午前0時0分0秒」から1,532,617,200秒経過したという意味です。

time関数からUNIX時間が分かれば、処理開始するタイミングと終了するタイミングでそれぞれUNIX時間を取得し、
その差分を取ることでプログラムの経過時間を計測することが可能です。

 

具体例を見てみましょう。

date.php

<?php

// タイムゾーンの設定

date_default_timezone_set('Asia/Tokyo'); $start_date  = time();

print "実行開始[時刻]:". date('Y年m月d日 H時i分s秒'). "\n";

print "-----------------------------------------------\n"; // [処理1]

// 10秒間待つ

sleep(10); $now_date = time();

print "処理1実行後[時刻]:". date('Y年m月d日 H時i分s秒', $now_date). "\n";

print "処理1実行後[経過時間]:". ($now_date-$start_date) . "秒\n";

print "-----------------------------------------------\n"; // [処理2]

for ($j = 0; $j < 10000; $j++) {

    // 10,000の要素を持つ配列を生成

    $data2 = range(1, 10000);

} 
$end_date = time();

print "実行終了[時刻]:". date('Y年m月d日 H時i分s秒', $end_date). "\n";

print "実行終了[経過時間]:". ($end_date-$start_date) . "秒\n";

print "-----------------------------------------------\n";

?>

結果

実行開始[時刻]:   2018年07月27日 20時12分18秒
-----------------------------------------------
処理1実行後[時刻]:    2018年07月27日 20時12分28秒
処理1実行後[経過時間]:10秒
-----------------------------------------------
実行終了[時刻]:    2018年07月27日 20時12分34秒
実行終了[経過時間]:16秒
-----------------------------------------------

-PHP