我的页面渲染时间

6

有没有什么方法可以得到一个测量本地主机页面渲染时间的php脚本。我已经搜索过,但没有找到任何东西,可能是因为我不知道如何搜索这种脚本。


2
你是想确定服务器生成HTML所需的时间,还是浏览器在屏幕上呈现HTML所需的时间? - Matt Ball
你好,我正在尝试获取浏览器渲染HTML并在屏幕上呈现所需的渲染时间,谢谢。 - AvinD
1
你需要使用Firebug -- http://getfirebug.com/ - ajreal
3个回答

20

关于原始已批准答案的更新(针对未来搜索并复制粘贴 mojo 的人):

对于 PHP 5.X+,您不仅需要将“true”作为参数添加到microtime()变量中,而且我们不再需要将其除以1,000。所以2013年的答案是:

脚本的开头:

$start = microtime(true);

脚本底部:

$end = microtime(true);
$creationtime = ($end - $start);
printf("Page created in %.6f seconds.", $creationtime);

嗯...我从来没有检查过,但也许我应该。对于共享主机来说,什么是一个好的目标基准?有什么经验法则吗? - Bangkokian
也许在2013年的时候情况不同,但是在现在这个“未来”,这种方法可以告诉你PHP脚本运行了多长时间,但是它并没有考虑页面渲染(就像OP所问的那样)。根据浏览器、缓存和要加载的图片数量等因素,页面渲染可能要在PHP脚本执行完毕后很久才能完成。 - ashleedawg
@ashleedawg 这里的“渲染”一词是用来描述在服务器端生成HTML输出,而不是在客户端机器上进行页面图形渲染。 - Jochem Kuijpers

5
如果您想知道服务器创建页面所需的时间(例如,向用户显示此信息),则需要在代码开头添加以下内容:
$start = microtime();

并且在最后添加这个:
$end = microtime();
$creationtime = ($end - $start) / 1000;
printf("Page created in %.5f seconds.", $creationtime);

你好,我已经在我的header.php中放置了$start = microtime();,并将另一个脚本放在页面末尾的footer.php中,但是我发现时间太短,显示“页面在0.000286066秒内创建”,但这不是真实情况,我估计页面需要大约3-4秒或更长时间才能生成。有什么问题吗?谢谢。 - AvinD
这个时间是 PHP 实际创建页面的时间,据我所知也是唯一可以测量的时间。用户请求页面和实际看到页面之间的时间将涉及许多其他因素 - 请求 Web 服务器(通常很快,但如果 Web 服务器过载可能会很慢),实际发送页面,最后是用户的浏览器呈现 HTML。我认为减慢页面输出的原因是其中的某些因素。 - EdoDodo
你好,我正在尝试获取浏览器渲染HTML并显示在屏幕上所需的渲染时间,谢谢。 - AvinD
1
如果您使用的是PHP 5+,则需要将true作为参数添加到microtime中 - 否则您将尝试在字符串上进行数学运算。 - Natalie Adams
这个方法可以告诉你 PHP 脚本运行的时间,但是它不考虑页面渲染(就像 OP 所问的那样)。根据浏览器、缓存和要加载的图片/视频/字体等数量,页面渲染可能要在 PHP 脚本执行完成之后很长一段时间才能完成。 - ashleedawg

3

您无法使用PHP测量浏览器渲染时间。您所能做的只是测量服务器生成页面所需的时间。

但如果可以使用Javascript,可以执行以下操作:

<html>
    <head>
    <script type="text/javascript">
        var start_time=+new Date();
        window.onload=function(){
            alert("Page render time: " + ((+new Date()-start_time)/1000));
        };
    </script>
    </head>
    <body>
        <p>hi</p>
    </body>
</html>

如果你想要浏览器插件,请查看以下链接:如何在IE 6或FF 3.x上测量页面渲染时间

谢谢!(其他答案没有回答问题,因此是不正确的) - ashleedawg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接