在apache服务器中加载php页面的时间

时间:2012-11-16 06:10:51

标签: php apache

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

4 个答案:

答案 0 :(得分:9)

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

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

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

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

$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起)。

另请参阅:How long does it take to serve a request

答案 1 :(得分:2)

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

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

我从未尝试过它..

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

在头文件的顶部:

$process_start = date('H:i:s');
页脚文件中的

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

不是最佳方式,但可能有效