如何才能有效地让我的脚本睡眠达到准确的毫秒数?

时间:2013-09-09 02:39:26

标签: php c timer cpu-time

我写了以下myscript.php:

<?php
$count=0;
$start=microtime(true);
while ((microtime(true)-$start)<1) {
        usleep(1000);
        $count++;
}
echo $count;
?>

当我在CentOS 2.6.32 x64内核(Windows 7主机)上运行php -f myscript.php时,我得到的输出如35,43,76,543,44,39,29,38,而不是接近1000的数字。 ..我该怎么办?

编辑:我也使用time_nanosleep(0,1000000)usleep()尝试clock_gettime()和C代码,但结果相同。

1 个答案:

答案 0 :(得分:1)

它可能是PHP的开销,或者可能是PHP中的microtime()usleep()并不准确。看看C中的类似代码会很有趣。

This文章对准确计时进行了有趣的讨论。

VMWare关于虚拟机计时的this文章可能会引起人们的兴趣。