php microtime解释

时间:2011-12-04 23:45:28

标签: php microtime

我有这段代码:

$time_sample[] = microtime(true); //start
sleep(1);
$time_sample[] = microtime(true); //time 1
sleep(2);
$time_sample[] = microtime(true); //time 2
sleep(3);
$time_sample[] = microtime(true); //time 3
sleep(4);
$time_sample[] = microtime(true); //time 4

脚本输出:

Time 1: 1.001217 seconds.
Time 2: 2.002094 seconds.
Time 3: 3.003023 seconds.
Time 4: 4.004211 seconds.

基于此,为什么sleep(1)不是1.000000秒,sleep(2) 2.00000秒等等?

我使用usleep()进行了相同的测试,得到了相同类型的结果。

你能告诉我为什么吗?

2 个答案:

答案 0 :(得分:18)

对于函数调用和变量赋值等,它仍然需要额外的开销。它将至少是您睡眠的时间长度,可能还要几毫秒。

答案 1 :(得分:5)

这可能是错的,但我记得很久以前有人告诉我计算机上的时间很难衡量。

考虑到调用函数sleep()microtime()都需要一些时间,它总是会被淘汰。在做任何不属于计时过程的事情上都有开销。