microtime()和浮点算术

时间:2013-02-14 16:23:11

标签: php mysql performance apache

我创建了一个简单的网站,用于从MySQL数据库中获取文章。我使用PHP microtime(true)函数来计算解释的时间。在我的PHP脚本的顶部,我使用了:

$time = microtime(true);

在页面底部,我使用了以下代码:

echo microtime(true) - $time;

当我使用脚本顶部和底部的那些语句刷新我的网页时。它总是回显一个值(0.0355005264282;只是一个实例)。这是解释我的PHP页面的时间。

正如PHP手册所说(http://php.net/manual/en/function.microtime.php),microtime(true)以微秒为单位返回当前的unix时间戳。微秒is one millionth of秒。所以,

(例如):

0.03 microseconds = 1/1,000,000 * 0.03 seconds
0.03 microseconds = 0.000,000,03 seconds 

因此,解释使用MySQL的PHP​​网页的时间大约为0.000,000,03秒。

我的问题是:microtime(true)是否说出了解释时间的真相?如果这是真的,这太棒了,因为我不再需要过多担心性能了。

我在Windows上使用XAMPP

3 个答案:

答案 0 :(得分:10)

  

microtime - 以微秒为单位返回当前的Unix时间戳

     

混合微量时间([bool $ get_as_float = false])

改为:

$time = microtime(true);
echo microtime(true) - $time;

结果将在几秒钟内完成。检查一下(手动):

  

'时间1' => float 1360860136.6731

     

'时间2' => float 1360860136.6732和

     

'时间2' - ' time1' = 9.9897384643555E-5即0.000099897384643555(不是0.0001)

PHP通常使用IEEE 754双精度格式。可以在基数10中精确表示为浮点数的有理数,如0.1或0.7,在基数2中没有精确表示为浮点数

答案 1 :(得分:6)

使用$get_as_float,它以秒为单位返回时间,精确到微秒。所以你有0.0355005264282秒,而不是微秒。

从您的链接:

  

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

答案 2 :(得分:2)

默认情况下,microtime会以“毫秒秒”的形式返回字符串。您正在从字符串中减去一个字符串,这会产生无意义的结果。

尝试添加get_as_float参数,然后重试。