6

我创建了一个简单的网站,它从 MySQL 数据库中获取文章。我使用 PHPmicrotime(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

4

3 回答 3

10

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 为底的浮点数

于 2013-02-14T16:30:32.110 回答
5

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

从您的链接:

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

于 2013-02-14T16:38:54.113 回答
2

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

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

于 2013-02-14T16:31:13.200 回答