萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php中計算頁面加載時間幾種方法總結

php中計算頁面加載時間幾種方法總結

大家可通常用的microtime()獲取頁面開始和結束時的時間並相減的話,計算結果是頁面運行 所經歷的一段時間,但這並不一定是該頁面自身運行的時間  代碼如下 復制代碼

<?php
//實例:計算頁面運行時加載時間
//分析:頁面打開時獲取一個時間,加載完成時獲取一個時間,運行時間即二者之差

//1.自定義函數
function fn(){
 list($a,$b) = explode(' ',microtime()); //獲取並分割當前時間戳和微妙數,賦值給變量
 return $a+$b;
}

//2.獲取開始時間
$start_time = fn();
//5.加載過程
for($i=0;$i<10000000;$i++){
 // do nothing;
}

//3.獲取結束時間
$end_time = fn();

//4.計算差值
echo $end_time-$start_time;

//5.格式化輸出
echo '<br />';
$t = $end_time-$start_time;
echo round($t,2);

?>

使用microtime()獲取頁面開始和結束時的時間並相減的話,計算結果是頁面運行
所經歷的一段時間,但這並不一定是該頁面自身運行的時間。因為可能存在多個PHP腳
本頁面共同執行的情況,所以我覺得那個方法是不准確的


下面從網上找到一個關於php中計算頁面程序運行時間的實例有需要的朋友可參考一下。

最近寫了一個程序運行的時間計算類,供大家參考:

 代碼如下 復制代碼 class Timer { 
    private $StartTime = 0;//程序運行開始時間
    private $StopTime  = 0;//程序運行結束時間
    private $TimeSpent = 0;//程序運行花費時間
    function start(){//程序運行開始
        $this->StartTime = microtime(); 
    } 
    function stop(){//程序運行結束
        $this->StopTime = microtime(); 
    } 
    function spent(){//程序運行花費的時間
        if ($this->TimeSpent) { 
            return $this->TimeSpent; 
        } else {
         list($StartMicro, $StartSecond) = explode(" ", $this->StartTime);
         list($StopMicro, $StopSecond) = explode(" ", $this->StopTime);
            $start = doubleval($StartMicro) + $StartSecond;
            $stop = doubleval($StopMicro) + $StopSecond;
            $this->TimeSpent = $stop - $start;
            return substr($this->TimeSpent,0,8)."秒";//返回獲取到的程序運行時間差
        } 
    } 

$timer = new Timer(); 
$timer->start();
//...程序運行的代碼
$timer->stop();
echo "程序運行時間為:".$timer->spent();

再看簡化程序 計算頁面加載時間

 代碼如下 復制代碼


<?php
class runtime
{
        var $StartTime = 0;
        var $StopTime = 0;
        function get_microtime()
        {
                list($usec, $sec) = explode(' ', 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);
        }
}

//實例開始
$runtime= new runtime;
$runtime->start();
//你的代碼開始
$a = 0;
for($i=0; $i<1000000; $i )
{
        $a = $i;
}
//你的代碼結束
$runtime->stop();
echo "頁面執行時間: ".$runtime->spent()." 毫秒";
?>

copyright © 萬盛學電腦網 all rights reserved