1

是否可以知道 Apache 服务器加载 PHP 页面所花费的时间?Apache 服务器内部是否为在 Apache 服务器下运行的每个页面生成任何日志文件?

4

4 回答 4

9

我假设您想知道 PHP 生成页面需要多长时间。

当脚本启动时,从 5.1 开始,$_SERVER您可以使用一个条目,称为REQUEST_TIME. 它包含请求开始的时间。在脚本结束时,您可以像这样计算它:

$time_taken = time() - $_SERVER['REQUEST_TIME'];

显然,这不是很准确,因此REQUEST_TIME_FLOAT在 PHP 5.4 中引入了更新:

$time_taken = microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'];

对于 < 5.4,您可以在脚本开头使用此代码段以实现向后兼容性:

if (!isset($_SERVER['REQUEST_TIME_FLOAT'])) {
    $_SERVER['REQUEST_TIME_FLOAT'] = microtime(true);
}

更新

要让 Apache 为您执行此操作,您可以添加%T和/或%D日志格式选项,例如

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" **%T/%D**" combined

%T选项允许您记录所用的秒数并%D记录微秒(从 Apache 2 开始)。

另请参阅:处理请求需要多长时间

于 2012-11-16T06:29:06.223 回答
2

您可以尝试 apache 的日志格式,您可以在访问日志中记录所花费的时间 (%D)(以微秒为单位)。

http://httpd.apache.org/docs/current/mod/mod_log_config.html#formats

虽然我没试过。。

于 2012-11-16T06:59:26.643 回答
1

您可以在代码开头打印当前时间戳,然后在末尾打印并从开始时间减去结束时间,以查看加载和运行数据的总时间

于 2012-11-16T06:13:03.497 回答
1

您可以使用它自己创建日志文件:

在头文件的顶部:

$process_start = date('H:i:s');

在页脚文件中

$process_end = date('H:i:s');
echo "<br/> process_start {$process_start}<br/> process_end {$process_end}"

不是最好的方法,但可能有效

于 2012-11-16T06:16:44.250 回答