是否可以知道 Apache 服务器加载 PHP 页面所花费的时间?Apache 服务器内部是否为在 Apache 服务器下运行的每个页面生成任何日志文件?
问问题
5291 次
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 回答