microtime(true) - 无法测量PHP脚本执行时间

时间:2015-06-21 07:45:08

标签: php performance

在尝试比较PHP中的算法运行时间时,我遇到了microtime()函数。但我认为我理解中缺少一些基本的东西。两个microtime(true)调用的差异以秒为单位返回结果,对吧?然后考虑这个非常简单的脚本:

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

echo ($t2 - $t1);

当我多次运行此脚本时,我得到的值在1.19秒到3.5秒之间变化。这显然是错误的,因为页面重新加载是即时的,并且脚本完全没有。

我做错了什么?

2 个答案:

答案 0 :(得分:4)

你必须误读结果,例如:

2.1457672119141E-6
  • 214万分之一秒,而不是2,14秒。

http://sandbox.onlinephpfunctions.com/code/5aa27a5fa9a228fd66eb08f0bb49384fc5b840d9

答案 1 :(得分:1)

根据PHP文档,

计算(使用参数get_as_float为true)将在几秒内为您提供结果。

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

如果get_as_float设置为TRUE,则microtime()返回一个浮点数,表示自Unix纪元精确到最接近的微秒以来的当前时间(秒)。

有关全文,请参阅此处http://php.net/manual/en/function.microtime.php

最重要的是,你的操作系统正在做很多事情。