关于脚本执行代码时间?

<?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微秒,而第二种不要?

希望不要觉得我啰嗦。。。

错过了年华
浏览 1696回答 3
3回答

KevenHuang

第二种是有错误的,microtime返回的是微秒数 空格 时间戳 这种形式的,是不能进行直接加减的,必须传入一个true参数,返回的才是一个小数型的时间戳,第二种也可以和第一种一样的,在$stime和$etime之间延迟1000微妙,但这两种方法有一个区别就是精度问题,第一种的精度要高于第二种,第一种小数点是8位的,第二种小数点是4位。而每次执行一段代码,执行时间都会有很细微的不一致,不可能每次执行时间的一模一样的。

箬叶

在未学精之前,何须担心时间
打开App,查看更多内容
随时随地看视频慕课网APP