在尝试比较 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/