<?php
//1
function microtime_float()
{
list($usec,$sec)=explode(" ",microtime());
return ((float)$usec+(float)$sec);
}
$time_start=microtime_float();
usleep(1000);
$time_end=microtime_float();
$time=round($time_end-$time_start,8);
echo "执行该脚本花费了($time)秒";
//2
$stime=microtime();
$etime=microtime();
$total=round($stime-$etime,8);
echo "<br>脚本执行时间为{$total}秒";
?>问题一:这两种方法为什么结果不一样?问题二:执行同一段代码,为什么每次得到的值都会变化?问题三:为什么第一种要延迟1000微秒,而第二种不要?希望不要觉得我啰嗦。。。
3 回答
已采纳
KevenHuang
TA贡献280条经验 获得超233个赞
第二种是有错误的,microtime返回的是微秒数 空格 时间戳 这种形式的,是不能进行直接加减的,必须传入一个true参数,返回的才是一个小数型的时间戳,第二种也可以和第一种一样的,在$stime和$etime之间延迟1000微妙,但这两种方法有一个区别就是精度问题,第一种的精度要高于第二种,第一种小数点是8位的,第二种小数点是4位。而每次执行一段代码,执行时间都会有很细微的不一致,不可能每次执行时间的一模一样的。
- 3 回答
- 0 关注
- 1695 浏览
添加回答
举报
0/150
提交
取消