为了账号安全,请及时绑定邮箱和手机立即绑定

关于脚本执行代码时间?

关于脚本执行代码时间?

<?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位。而每次执行一段代码,执行时间都会有很细微的不一致,不可能每次执行时间的一模一样的。

查看完整回答
1 反对 回复 2017-01-31
  • 错过了年华
    错过了年华
    执行的不都是同一段代码吗?在不同的时间执行为什么得出的结果不一样?
  • KevenHuang
    KevenHuang
    你只要知道每次执行同一段代码都不可能有绝对相同的执行时间就行了,都会有细小的误差,程序的执行是经过cpu高速运算的,cpu处理的效率就决定了你代码的执行时间,比如你第一次执行代码时,计算机运行非常流畅,执行效率自然非常高,而你下一次运行时刚好计算机卡顿,执行效率就很低,这样就会造成两次执行同一代码的时间不完全一致,这是很容易理解的,不知道我这样回答你能不能接受。
  • 错过了年华
    错过了年华
    谢谢。
?
箬叶

TA贡献1条经验 获得超0个赞

在未学精之前,何须担心时间
查看完整回答
反对 回复 2017-01-31
  • 3 回答
  • 0 关注
  • 1695 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信