是否可以知道Apache服务器加载PHP页面所花费的时间?Apache服务器内是否为Apache服务器下运行的每个页面生成了任何日志文件?
我假设你想知道PHP生成页面需要多长时间.
当脚本启动时,从5.1开始,$_SERVER你可以使用一个名为的条目REQUEST_TIME.它包含请求开始的时间.在脚本结束时,您可以像这样计算它:
$time_taken = time() - $_SERVER['REQUEST_TIME'];
Run Code Online (Sandbox Code Playgroud)
显然,这不是很准确,因此REQUEST_TIME_FLOAT在PHP 5.4中引入了更新的:
$time_taken = microtime(true) - $_SERVER['REQUEST_TIME_FLOAT'];
Run Code Online (Sandbox Code Playgroud)
对于<5.4,您可以在脚本开头使用此代码段以实现向后兼容性:
if (!isset($_SERVER['REQUEST_TIME_FLOAT'])) {
$_SERVER['REQUEST_TIME_FLOAT'] = microtime(true);
}
Run Code Online (Sandbox Code Playgroud)
更新
要让Apache为您执行此操作,您可以添加%T和/或%D日志格式选项,例如
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" **%T/%D**" combined
Run Code Online (Sandbox Code Playgroud)
该%T选项允许您记录所用的秒数并%D记录微秒(自Apache 2起).
另请参阅:提供请求需要多长时间