天天看點

php 記錄腳本執行時間,php 計算PHP腳本執行時間例子

計算PHP腳本執行時間我們會用到microtime函數了,主要原理是在頁面開始與結束各加一個函數,然後利用結束時間減去開始時間就可以了,下文來給各位新手介紹一下。

在PHP中,大多數的時間格式都是以UNIX時間戳表示的,而UNIX時間戳是以s(秒)為最小的計量時間的機關。這對某些應用程式來說不夠精确,是以可以調用microtime()傳回目前UNIX時間戳和微妙數。該函數的原型如下:

mixed microtime([bool get_as_float]); //傳回目前UNIX時間戳和微妙數

可以為該函數提供一個可選的布爾型參數,如果在調用時不提供這個參數,本函數以"msec sec"的格式傳回一個字元串。其中sec是自UNIX紀元到現在的秒數,而msec是微妙部分,字元串的兩部分都是以秒為機關傳回的。如果給出了get_as_float參數并且其值等價于TRUE,microtime()将傳回一個浮點數。在小數點前面還是以時間戳格式表示,而小數點後面則表示微妙的值。但要注意參數get_as_float是在PHP5.0版本中新加的,是以在PHP5以前的版本中,不能直接使用該參數直接請求一個浮點數。在下面的例子中通過兩次調用microtime()函數,計算運作PHP腳本所需要的時間。代碼如下所示:<?php

//生命一個計算腳本運作時間的類

class Timer {

private $startTime = 0; //儲存腳本開始執行時的時間(以微秒的形式儲存)

private $stopTime = 0; //儲存腳本結束執行時的時間(以微秒的形式儲存)

//在腳本開始處調用擷取腳本開始時間的微秒值

function start() {

$this->startTime = microtime(true); //将擷取的時間指派給成員屬性$startTime

}

//腳本結束處嗲用腳本結束的時間微秒值

function stop() {

$this->stopTime = microtime(true); //将擷取的時間賦給成員屬性$stopTime

}

//傳回同一腳本中兩次擷取時間的內插補點

function spent() {

//計算後4舍5入保留4位傳回

return round(($this->stopTime - $this->startTime) , 4);

}

}

$timer = new Timer();

$timer->start(); //在腳本檔案開始執行時調用這個方法

usleep(1000); //腳本的主題内容,這裡可以休眠一毫秒為例

$timer->stop(); //在腳本檔案結束處調用這個方法

echo "執行該腳本用時

" . $timer->spent() . "

";

?>

在以上腳本中,聲明一個用于計算腳本執行時間的類Timer。需要在腳本執行開始的位置調用該類中的start()方法,擷取腳本開始執行時的時間。并在腳本執行結束的位置調用該類中的stop()方法,擷取腳本運作結束時的時間。再通過通路該類中的spent()方法,就可以擷取運作腳本所需的時間。

後面我又打到一個類,下面我們一起來看看吧<?php

class runtime {

var $StartTime = 0;

var $StopTime = 0;

function get_microtime() {

list($usec, $sec) = explode(‘ & rsquo;

, microtime()); //取系統時間 前半部分是時間戳,後半部分是微妙部分

return ((float)$usec + (float)$sec);

}

function start() {

$this->StartTime = $this->get_microtime(); //程式開始的時候用這個方法取一次時間

}

function stop() {

$this->StopTime = $this->get_microtime(); //程式結束的時候用這個方法取一次時間

}

function spent() {

// return round(($this->StopTime - $this->StartTime) * 1000, 1);

return round(($this->StopTime - $this->StartTime) , 4); //用結束時候的時間減去開始時候的時間,就是程式運作的時間了

}

}

?>

轉載随意!帶上文章位址吧。