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

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

echo ($t2 - $t1);

当我多次运行这个脚本时,我得到的值在 1.19 秒到 3.5 秒之间变化。这显然是错误的,因为页面重新加载是即时的,脚本绝对无事可做。

我究竟做错了什么?

最佳答案

根据 PHP 文档,计算(参数 get_as_float 为 true)将在几秒钟内为您提供结果。

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

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

全文引用这里 http://php.net/manual/en/function.microtime.php

最重要的是,您的操作系统在两者之间做了很多事情。

关于php - microtime(true) - 无法测量 PHP 脚本执行时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30962341/

10-11 03:24