<?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 關注
- 1738 瀏覽
添加回答
舉報
0/150
提交
取消