当前位置:首页 > PHP教程 > php类库 > 列表

php实现的Timer页面运行时间监测类

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-14 15:28:26 浏览: 评论:0 

这篇文章主要介绍了php实现的Timer页面运行时间监测类,可实现按不同key检测不同的运行时间,需要的朋友可以参考下

本文实例讲述了php实现的Timer页面运行时间监测类及其用法,是一款非常实用的PHP类文件。分享给大家供大家参考。具体分析如下:

该php Timer页面运行时间监测类,可按不同key监测不同的运行时间。

Timer.class.php类文件如下:

  1. <?php  
  2. /** Timer class, 计算页面运行时间,可按不同key计算不同的运行时间  
  3. *  Date:  2014-02-28  
  4. *  Author: fdipzone  
  5. *  Ver:  1.0  
  6.  
  7. *  Func:  
  8. *  public start    记录开始时间  
  9. *  public end     记录结束时间  
  10. *  public getTime   计算运行时间  
  11. *  pulbic printTime  输出运行时间  
  12. *  private getKey    获取key  
  13. *  private getMicrotime 获取microtime  
  14. */ 
  15.    
  16. class Timer{ // class start  
  17.    
  18.   private $_start = array();  
  19.   private $_end = array();  
  20.   private $_default_key = 'Timer';  
  21.   private $_prefix = 'Timer_';  
  22.    
  23.   /** 记录开始时间  
  24.   * @param String $key 标记  
  25.   */ 
  26.   public function start($key=''){  
  27.     $flag = $this->getKey($key);  
  28.     $this->_start[$flag] = $this->getMicrotime();  
  29.   }  
  30.    
  31.   /** 记录结束时间  
  32.   * @param String $key 标记  
  33.   */ 
  34.   public function end($key=''){  
  35.     $flag = $this->getKey($key);  
  36.     $this->_end[$flag] = $this->getMicrotime();  
  37.   }  
  38.    
  39.   /** 计算运行时间  
  40.   * @param String $key 标记  
  41.   * @return float  
  42.   */ 
  43.   public function getTime($key=''){  
  44.     $flag = $this->getKey($key);  
  45.     if(isset($this->_end[$flag]) && isset($this->_start[$flag])){  
  46.       return (float)($this->_end[$flag] - $this->_start[$flag]);  
  47.     }else{  
  48.       return 0;  
  49.     }  
  50.   }  
  51.    
  52.   /** 输出页面运行时间  
  53.   * @param String $key 标记  
  54.   * @return String  
  55.   */ 
  56.   public function printTime($key=''){  
  57.     printf("%srun time %f ms\r\n"$key==''$key : $key.' '$this->getTime($key)*1000);  
  58.   }  
  59.    
  60.   /** 获取key  
  61.   * @param String $key 标记  
  62.   * @return String  
  63.   */ 
  64.   private function getKey($key=''){  
  65.     if($key==''){  
  66.       return $this->_default_key;  
  67.     }else{  
  68.       return $this->_prefix.$key;  
  69.     }  
  70.   }  
  71.    
  72.   /** 获取microtime  
  73.   */ 
  74.   private function getMicrotime(){  
  75.     list($usec$sec) = explode(' ', microtime());  
  76.     return (float)$usec + (float)$sec;  
  77.   }  
  78. // class end  
  79. ?> 

demo示例代码如下:

  1. <?php  
  2.    
  3. require 'Timer.class.php';  
  4.    
  5. $timer = new Timer();  
  6. $timer->start();  
  7.    
  8. $timer->start('program1');  
  9. usleep(mt_rand(100000,500000));  
  10. $timer->end('program1');  
  11. $timer->printTime('program1');  
  12.    
  13. $timer->start('program2');  
  14. usleep(mt_rand(100000,500000));  
  15. $timer->end('program2');  
  16. $timer->printTime('program2');  
  17.    
  18. $timer->end();  
  19. $timer->printTime();  
  20.    
  21. ?> 

demo运行输出:

  1. program1 run time 163.285971 ms  
  2. program2 run time 100.347042 ms  
  3. run time 264.035940 ms  

Tags: php时间监测类

分享到: