php使用microtime(true)计算php程序代码执行消耗时间

如何计算一段php程序代码的执行消耗时间?

对于系统时间,可能很多同学对PHP的time()函数并不陌生,可惜time()函数只返回自从 Unix 纪元(格林威治时间 1970 年 1 月 1 日 00:00:00)到当前时间的秒数.
没错,是秒.我们一段php程序代码执行耗时可能并不超过一秒,所以time()并不适用.php提供了一个更为精确的时间函数microtime():

microtime — 返回当前 Unix 时间戳和微秒数.

格式: mixed microtime ([ bool $get_as_float ] )

函数以 “msec sec” 的格式返回一个字符串,sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。
如果输入参数为true,microtime() 将返回一个浮点数。

例如:echo microtime(); 会返回:0.08845800 1376983061。

echo microtime(true);则返回:1376983061.08845800

在dedecms和康盛的UCenter代码中使用了microtime()然后字符串分隔

在thinkphp3.2框架代码中使用了microtime(true);

好了,然后的事情很简单,为了免于对返回的结果做复杂的字符串转换,我们设定microtime()输入参数为true,使得其返回的结果为浮点数。
然后在程序开始和结束分别计算一次,两次结果相减便是程序执行的时间。(PHP手册里有一句话:永远不要比较两个浮点数是否相等。 )
最后使用number_format格式化浮点数。此方法仅供测试,结果不一定精确。

代码如下:

[php] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <?php  
  2.   
  3. $start = microtime(true);  
  4.   
  5. $end = microtime(true);  
  6.   
  7. $time=$end-$start;  
  8.   
  9. //精确到十位小数,可自行调节  
  10.   
  11. echo number_format($time, 10, '.', '')." seconds";  
  12.   
  13. ?>  

 

PHP视频教程

 

 

microtime() 函数返回当前 Unix 时间戳和微秒数。

      如果带个 true 参数, 返回的将是一个浮点类型

round() 取出小数点后 3 位

 $t1 = microtime(true);
 // ... 执行代码 ...
 $t2 = microtime(true);
 echo '耗时'.round($t2-$t1,3).'秒';
posted @ 2016-12-26 11:15  天涯海角路  阅读(787)  评论(0)    收藏  举报