【问题标题】:Properly calculating the time taken to generate a page by PHP正确计算 PHP 生成页面所需的时间
【发布时间】:2018-05-09 19:40:07
【问题描述】:

我正在使用以下代码来计算 PHP 生成页面所花费的时间。

<?php echo (microtime(true) - $_SERVER['REQUEST_TIME_FLOAT']);?>

我将这段代码放在结束 body 标记之前,所以我假设结果足够准确。

这段代码返回的值为:0.4458909034729等类似值。

我已阅读 PHP 文档和其他一些文章,但我不完全确定返回值是以秒、毫秒还是微秒为单位。

解释将对我和其他初学者非常有帮助。 :)

【问题讨论】:

  • 0.4458909034729 几乎是半秒。
  • 嗯,是 0.445 秒或 445 毫秒。 Unix时间总是以秒为单位,微秒精度是指小数。
  • 我敢打赌,您需要再次更仔细地阅读文档。
  • @u_mulder 我有,但我无法得到任何明确的答案。据我了解,微秒 - 微秒 = 微秒。但是,0.4458909034729 对于微秒来说太快了。所以,我很困惑。
  • 所以转储原始值并检查。

标签: php php-7


【解决方案1】:

来自文档:

  1. http://php.net/manual/en/reserved.variables.server.php

'REQUEST_TIME_FLOAT' 请求开始的时间戳,精度为 微秒。自 PHP 5.4.0 起可用。

  1. http://php.net/manual/en/function.microtime.php

microtime — 返回当前 Unix 时间戳,微秒

但是,让我们做一些检查。创建一个简单的脚本:

sleep(2);
$t = microtime(true);
var_dump(
    $_SERVER['REQUEST_TIME_FLOAT'], 
    $t, 
    $t - $_SERVER['REQUEST_TIME_FLOAT']
);

我机器上的结果是:

float(1525895588.0071) 
float(1525895590.0074) 
float(2.0003039836884)

我们可以看到 - 值是 (1525895588) 和 微秒 部分 (0071)。 diff 似乎是正确的 - 我们的脚本会休眠 2 秒。

所以,减法的结果是 。在您的示例中,您的脚本运行半秒,不是半微秒。

【讨论】:

  • 我的页面真的被 PHP 解析得这么快吗?这意味着我可以在一秒钟内解析超过 1000000 个页面。这就是为什么我想问专家并确保我没有误读这些价值观。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
  • 2021-11-18
  • 2020-12-15
  • 1970-01-01
相关资源
最近更新 更多