2012-11-16 37 views
1

是否有可能知道Apache服务器加载PHP页面所用的时间? Apache服务器中是否有任何在Apache服务器上运行的页面生成日志文件?在Apache服务器上加载php页面的时间

+0

我会建议使用microtime中(); ..因为你知道y .. – Dinesh

+0

没有在这种情况下,我必须使用微型时间在用户创建的每个php页面。我想知道我可以检查从任何日志文件的Apache? –

回答

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

参见:How long does it take to serve a request

1

你可以在你的代码的起始打印当前时间戳,然后在最后打印出来,并从起始时间减去结束时间看到的总时间通过数据加载和运行

1

您可以使用这个创建日志文件的自己:

在头文件的顶部:

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

在页脚文件

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

不是最好的方式,但可以工作

+2

这将工作,但它只是准确的第二。如果在记录持续时间时需要小时,我会担心。 ;-) – Alastair

相关问题