国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > PHP > 正文

php中計(jì)算頁(yè)面加載時(shí)間幾種方法總結(jié)

2024-05-04 21:57:47
字體:
供稿:網(wǎng)友

大家可通常用的microtime()獲取頁(yè)面開始和結(jié)束時(shí)的時(shí)間并相減的話,計(jì)算結(jié)果是頁(yè)面運(yùn)行 所經(jīng)歷的一段時(shí)間,但這并不一定是該頁(yè)面自身運(yùn)行的時(shí)間

實(shí)例代碼如下:

  1. <?php 
  2. //實(shí)例:計(jì)算頁(yè)面運(yùn)行時(shí)加載時(shí)間 
  3. //分析:頁(yè)面打開時(shí)獲取一個(gè)時(shí)間,加載完成時(shí)獲取一個(gè)時(shí)間,運(yùn)行時(shí)間即二者之差 
  4. //1.自定義函數(shù) 
  5. function fn(){ 
  6.  list($a,$b) = explode(' ',microtime()); //獲取并分割當(dāng)前時(shí)間戳和微妙數(shù),賦值給變量 
  7.  return $a+$b
  8. //2.獲取開始時(shí)間 
  9. $start_time = fn(); 
  10. //5.加載過程 
  11. for($i=0;$i<10000000;$i++){ 
  12.  // do nothing; 
  13. //3.獲取結(jié)束時(shí)間 
  14. $end_time = fn(); 
  15. //4.計(jì)算差值 
  16. echo $end_time-$start_time
  17. //5.格式化輸出 
  18. echo '<br />'
  19. $t = $end_time-$start_time
  20. echo round($t,2); 
  21. ?> 

使用microtime()獲取頁(yè)面開始和結(jié)束時(shí)的時(shí)間并相減的話,計(jì)算結(jié)果是頁(yè)面運(yùn)行 

所經(jīng)歷的一段時(shí)間,但這并不一定是該頁(yè)面自身運(yùn)行的時(shí)間.因?yàn)榭赡艽嬖诙鄠€(gè)PHP腳 

本頁(yè)面共同執(zhí)行的情況,所以我覺得那個(gè)方法是不準(zhǔn)確的

下面從網(wǎng)上找到一個(gè)關(guān)于php中計(jì)算頁(yè)面程序運(yùn)行時(shí)間的實(shí)例有需要的朋友可參考一下.

最近寫了一個(gè)程序運(yùn)行的時(shí)間計(jì)算類,供大家參考:

實(shí)例代碼如下:

  1. class Timer {   
  2.     private $StartTime = 0;//程序運(yùn)行開始時(shí)間 
  3.     private $StopTime  = 0;//程序運(yùn)行結(jié)束時(shí)間 
  4.     private $TimeSpent = 0;//程序運(yùn)行花費(fèi)時(shí)間 
  5.     function start(){//程序運(yùn)行開始 
  6.         $this->StartTime = microtime();   
  7.     }   
  8.     function stop(){//程序運(yùn)行結(jié)束 
  9.         $this->StopTime = microtime();   
  10.     }   
  11.     function spent(){//程序運(yùn)行花費(fèi)的時(shí)間 
  12.         if ($this->TimeSpent) {   
  13.             return $this->TimeSpent;   
  14.         } else { 
  15.          list($StartMicro$StartSecond) = explode(" "$this->StartTime); 
  16.          list($StopMicro$StopSecond) = explode(" "$this->StopTime); 
  17.             $start = doubleval($StartMicro) + $StartSecond
  18.             $stop = doubleval($StopMicro) + $StopSecond
  19.             $this->TimeSpent = $stop - $start
  20.             return substr($this->TimeSpent,0,8)."秒";//返回獲取到的程序運(yùn)行時(shí)間差 
  21.         }   
  22.     }   
  23. }   
  24. $timer = new Timer();   
  25. $timer->start(); 
  26. //...程序運(yùn)行的代碼 
  27. $timer->stop(); 
  28. echo "程序運(yùn)行時(shí)間為:".$timer->spent(); 

再看簡(jiǎn)化程序 計(jì)算頁(yè)面加載時(shí)間

實(shí)例代碼如下:

  1. <?php 
  2. class runtime 
  3.         var $StartTime = 0; 
  4.         var $StopTime = 0; 
  5.         function get_microtime() 
  6.         { 
  7.                 list($usec$sec) = explode(' ', microtime()); 
  8.                 return ((float)$usec (float)$sec); 
  9.         } 
  10.          
  11.         function start() 
  12.         { 
  13.                 $this->StartTime = $this->get_microtime(); 
  14.         } 
  15.          
  16.         function stop() 
  17.         { 
  18.                 $this->StopTime = $this->get_microtime(); 
  19.         } 
  20.          
  21.         function spent() 
  22.         { 
  23.                 return round(($this->StopTime - $this->StartTime) * 1000, 1); 
  24.         } 
  25. //實(shí)例開始 
  26. $runtimenew runtime; 
  27. $runtime->start();  
  28. //你的代碼開始 
  29. $a = 0; 
  30. for($i=0; $i<1000000; $i ) 
  31.         $a = $i
  32. //你的代碼結(jié)束 
  33. $runtime->stop(); 
  34. echo "頁(yè)面執(zhí)行時(shí)間: ".$runtime->spent()." 毫秒"
  35. ?> 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 澜沧| 延吉市| 若羌县| 阿拉尔市| 荣昌县| 成都市| 三门县| 乳山市| 论坛| 许昌市| 都江堰市| 东兰县| 饶阳县| 左云县| 班戈县| 祁东县| 巴中市| 北碚区| 鹤山市| 六安市| 北京市| 大理市| 资阳市| 綦江县| 历史| 浮山县| 翼城县| 南丰县| 四川省| 绿春县| 怀来县| 大余县| 荆州市| 弋阳县| 云和县| 文山县| 鄂托克旗| 屯留县| 罗源县| 平度市| 化州市|