2015-06-21 83 views
4

虽然试图比较PHP中的算法运行时间,但我遇到了microtime()函数。但我认为,我有一些基本的理解错误。两个microtime(true)调用的区别以秒为单位返回结果,对吧?然后考虑这个极其简单的脚本:microtime(true) - 麻烦测量PHP脚本执行时间

$t1 = microtime(true); 
//do nothing 
$t2 = microtime(true); 

echo ($t2 - $t1); 

当我运行此脚本几次,我得到的值1.19秒和3.5秒之间变化。这显然是错误的,因为页面重新加载是即时的,脚本绝对没有任何事情可做。

我在做什么错?

+0

这个问题可能很快就会被重复关闭。如果来自重复项目的答案没有完全解决您的问题,请对其进行编辑以包括原因并将其标记为重新打开。谢谢! [看这里](http://stackoverflow.com/questions/6245971/accurate-way-to-measure-execution-times-of-php-scripts) –

+0

@RohitGupta好吧,但我筛选了许多类似的答案。我的观点是为什么脚本无需任何操作需要1-3秒。 – dotslash

+0

[在PHP中跟踪脚本执行时间]可能的重复(http://stackoverflow.com/questions/535020/tracking-the-script-execution-time-in-php) – Achrome

回答

1

计算(与参数get_as_float为真)会给你的结果在几秒钟内,根据PHP文件。

默认情况下,microtime()以“msec sec”的形式返回一个字符串,其中sec是自Unix时代(格林威治标准时间1970年1月1日0:00:00)开始的秒数,msec测量微秒从秒开始已经过去并且也以秒表示。

如果get_as_float设置为TRUE,则microtime()返回一个float值,它表示自Unix时期以来的当前时间,精确到最近的微秒。

对于全文请参考这里http://php.net/manual/en/function.microtime.php

最重要的是你的操作系统是做很多事情之间顶部。

+0

嗯。 。 。我挖出了很多官方文档,但从未想过操作系统的角度。这是否意味着我无法准确估计代码段的运行时间?在我看来,根据操作系统的不同,例如,选择排序可能会比快速排序更有效!你同意吗? – dotslash

+0

n-dru是对的,你是在误读它。 –

+0

他的答案现在被删除了,但他写了毫秒,这在文档中找不到。无论如何。 。 。 – dotslash