[PHP]計算程式執行過程的時間

摘要:[PHP]計算程式執行過程的時間

 
今天跟同事閒聊,看到迴圈抓資料驗證再回傳有點慢,就在想有沒有可以測出執行時間之類的
就想說嘗試看看,一開始想各別用Date()去抓秒數,是可以,但是因為擷取出來都是整數,所以要是執行時間是零點幾秒(0.x)的呢
這樣計算出來,結果會顯示執行了0秒
 
而在搜尋之下,找到了microtime函數
microtime():函數返回當前Unix 時間戳和微秒數
使用方法:microtime ( $get_as_float )
$get_as_float:要是給予參數為TRUE,函數將返回一個浮點數
 
而在等等的範例裡,還有使用到兩個函數,sleep與usleep
sleep()與usleep():延遲執行
這兩個差異在,sleep($s)裡頭的$s是以秒計算,而usleep($s)裡頭的$s是以微秒為計算單位
(參考資料:
 
以下有一小段程式碼,供各位讀者參考:
「run_time.php」

<?php
    $start_time = date("H")*3600+date("i")*60+date("s");
    $start_time2 = microtime(true);

    //執行的程式碼
    sleep(2); //延遲sleep以秒計算
    //usleep(1000); //延遲usleep以微秒計算

    $end_time = date("H")*3600+date("i")*60+date("s");
    $end_time2 = microtime(true);

    echo "start_time:".$start_time."秒<br />";
    echo "end_time:".$end_time."秒<br />";
    $time_total = $end_time - $start_time;
    echo "設定值為sleep(2),執行了:".$time_total."秒<br />";

    //---------------------------
    echo "<hr>";

    echo "start_time2:".$start_time2."秒<br />";
    echo "end_time2:".$end_time2."秒<br />";
    $time_total2 = $end_time2 - $start_time2;
    echo "設定值為sleep(2),執行了:".$time_total2."秒";
?>
輸出結果如圖所示: