繁体   English   中英

microtime()和浮点算术

[英]microtime() and floating point arithmetics

我创建了一个简单的网站,从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

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

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

改为:

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

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

'time1'=>浮动1360860136.6731

'time2'=>浮动1360860136.6732和

'time2' - 'time1'= 9.9897384643555E-5即0.000099897384643555(不是0.0001)

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

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

从您的链接:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM