Php microtime()与浮点算法

Php microtime()与浮点算法,php,mysql,performance,apache,Php,Mysql,Performance,Apache,我创建了一个简单的网站,从MySQL数据库中获取文章。我使用PHPmicrotime(true)函数来计算解释的时间。在我的PHP脚本顶部,我使用了: $time = microtime(true); 在页面底部,我使用了以下代码: echo microtime(true) - $time; 当我用脚本顶部和底部的语句刷新网页时。它总是回显周围的值(0.0355005264282;只是一个实例)。这就是解释我的PHP页面所花的时间 正如PHP手册()所说,microtime(true)以微秒

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

$time = microtime(true);
在页面底部,我使用了以下代码:

echo microtime(true) - $time;
当我用脚本顶部和底部的语句刷新网页时。它总是回显周围的值(
0.0355005264282
;只是一个实例)。这就是解释我的PHP页面所花的时间

正如PHP手册()所说,
microtime(true)
以微秒为单位返回当前unix时间戳。一微秒
是每秒的百万分之一。所以

(例如):

因此,解释使用MySQL的PHP网页所需的时间大约为
0.000000,03

我的问题是: 这是
microtime(true)
说明了解释时间的真相吗?如果这是真的,那就太棒了,因为我再也不用担心性能了

我正在Windows上使用XAMPP

microtime—返回当前Unix时间戳(以微秒为单位)

混合微时间([bool$get\u as\u float=false])

改为:

$time = microtime(true);
echo microtime(true) - $time;
结果将在几秒钟内完成。检查此(手册):

“时间1”=>浮点1360860136.6731

“时间2”=>浮点1360860136.6732和

“时间2”-“时间1”=9.9897384643555E-5,即0.0000998977384643555(非0.0001)

PHP通常使用IEEE 754双精度格式。在基数10中可以精确表示为浮点数的有理数,如0.1或0.7,在基数2中不能精确表示为浮点数。默认情况下,以“毫秒秒”的形式返回字符串。您正在从字符串中减去一个字符串,这会产生无意义的结果


尝试添加
get\u as\u float
参数,然后重试。

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

从您的链接:

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


您是否在本地进行测试?是的,在Windows上使用XAMPP。如果您感兴趣,请自己尝试。如果您在本地测试它,显然它会给您快速的结果,在线部署它,然后用微秒检查它的时间,而不是用微秒
默认情况下,microtime()以“毫秒秒”的形式返回字符串,
。PHP如何处理
string
?我不确定我是否想知道……好吧,这是我问题的一个错误。我现在改了。即使你改变了,也没什么区别。结果仍然一样。我不认为这是一个错误。@Pravinda:我认为你误解了你得到的结果。您得到的结果以秒为单位。这是0.0355秒,而不是0.0355微秒。你自己试试看,例如
'5.2'-'0.4'
。您可以使用字符串很好地执行此类操作。PHP将从文档中键入juggling:'microtime()以“msec sec”的形式返回字符串。试着去做
“120034”-“120056”
。PHP手册并没有这么说。我阅读了关于microtime()的整个页面。@PravindaAmarathunga-它在“返回值”中有,添加了这一部分作为答案。microtime()返回的浮点单位是秒,但小数部分精确到微秒。这是正确诊断问题的唯一答案。
$time = microtime(true);
echo microtime(true) - $time;