PHP获取页面加载统计信息 - 如何衡量PHP脚本执行/加载时间

ATL*_*ris 7 php time load pageload

我在标题中有什么:

$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
Run Code Online (Sandbox Code Playgroud)

我在页脚中有什么:

$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);
echo 'Page generated in ' . $total_time . ' seconds.';
Run Code Online (Sandbox Code Playgroud)

输出:页面生成时间为1292008977.54秒.

有人可以帮我弄清楚为什么结果不对吗?我使用的是PHP5.

Gho*_*ell 6

看到这是Google的第一个结果,我想我会分享我对这个问题的解决方案.把它放在页面顶部:

$startScriptTime=microtime(TRUE);
Run Code Online (Sandbox Code Playgroud)

然后将此代码放在页面底部:

$endScriptTime=microtime(TRUE);
$totalScriptTime=$endScriptTime-$startScriptTime;
echo "\n\r".'<!-- Load time: '.number_format($totalScriptTime, 4).' seconds -->';
Run Code Online (Sandbox Code Playgroud)

查看页面源时,您可以在HTML最后一行的注释中看到加载时间.


Joh*_*ner 5

microtime()microseconds返回当前的Unix 时间戳。我没有看到任何数学运算可以将微秒转换为秒。

microtime(true)为单位以浮点数形式返回时间


Ist*_*ros 5

您可以使用此简单函数来避免变量范围问题:

<?php

function timer()
{
    static $start;

    if (is_null($start))
    {
        $start = microtime(true);
    }
    else
    {
        $diff = round((microtime(true) - $start), 4);
        $start = null;
        return $diff;
    }
}

timer();

echo 'Page generated in ' . timer() . ' seconds.';
Run Code Online (Sandbox Code Playgroud)