首页 > 语言 > PHP > 正文

php计算PHP脚本执行时间例子

2024-09-04 11:45:38
字体:
来源:转载
供稿:网友

在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脚本所需要的时间,代码如下所示:

  1. <?php 
  2. //生命一个计算脚本运行时间的类 
  3. class Timer{ 
  4. private $startTime = 0; //保存脚本开始执行时的时间(以微秒的形式保存) 
  5. private $stopTime = 0; //保存脚本结束执行时的时间(以微秒的形式保存) 
  6.  
  7. //在脚本开始处调用获取脚本开始时间的微秒值 
  8. function start(){ 
  9. $this->startTime = microtime(true); //将获取的时间赋值给成员属性$startTime 
  10. //脚本结束处嗲用脚本结束的时间微秒值 
  11. function stop(){ 
  12. $this->stopTime = microtime(true); //将获取的时间赋给成员属性$stopTime 
  13. //返回同一脚本中两次获取时间的差值 
  14. function spent(){ 
  15. //计算后4舍5入保留4位返回 
  16. return round(($this->stopTime-$this->startTime),4); 
  17.  
  18. $timernew Timer();  
  19. $timer->start(); //在脚本文件开始执行时调用这个方法 
  20. usleep(1000); //脚本的主题内容,这里可以休眠一毫秒为例 
  21. $timer->stop(); //在脚本文件结束处调用这个方法 
  22.  
  23. echo "执行该脚本用时<b>".$timer->spent()."</b>"
  24.  
  25. ?> 

在以上脚本中,声明一个用于计算脚本执行时间的类Timer,需要在脚本执行开始的位置调用该类中的start()方法,获取脚本开始执行时的时间,并在脚本执行结束的位置调用该类中的stop()方法,获取脚本运行结束时的时间,再通过访问该类中的spent()方法,就可以获取运行脚本所需的时间.

后面我又打到一个类,下面我们一起来看看吧,代码如下:

  1. ** 
  2.  * 获取某段程序运行所用的时间 
  3.  * 
  4.  */ 
  5. class runtime 
  6. {  
  7.  var $StartTime = 0;  
  8.  var $StopTime = 0; 
  9.  
  10.  /** 
  11.   * 获取系统时间 
  12.   * 
  13.   * @return unknown 
  14.   */ 
  15.  function get_microtime() 
  16.  {  
  17.   list($usec$sec) = explode(‘ ’, microtime()); //取系统时间 前半部分是时间戳,后半部分是微妙部分 
  18.   return ((float)$usec + (float)$sec); 
  19.  } 
  20.  /** 
  21.   * 取程序开始时候的系统时间 
  22.   * 
  23.   */ 
  24.  function start() 
  25.  {  
  26.   $this->StartTime = $this->get_microtime();  //程序开始的时候用这个方法取一次时间 
  27.  } 
  28.  /** 
  29.   * 取程序结束时候的系统时间 
  30.   * 
  31.   */ 
  32.  function stop() 
  33.  {  
  34.   $this->StopTime = $this->get_microtime();   //程序结束的时候用这个方法取一次时间 
  35.  } 
  36.  /** 
  37.   * 计算出程序运行所用时间 
  38.   * 
  39.   * @return unknown 
  40.   */ 
  41.  function spent() 
  42.  {  
  43.     // return round(($this->StopTime - $this->StartTime) * 1000, 1); 
  44.     //开源代码Vevb.com 
  45.   return round(($this->StopTime - $this->StartTime), 4); //用结束时候的时间减去开始时候的时间,就是程序运行的时间了 
  46.  } 
  47. }

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表