計算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); //用結束時候的時間減去開始時候的時間,就是程式運作的時間了
}
}
?>
轉載随意!帶上文章位址吧。