你如何衡量页面加载速度?

时间:2008-10-27 15:38:09

标签: performance measurement

我正在尝试量化“网站缓慢”。在过去,您只需确保HTML是轻量级的,图像优化且服务器不会过载。在建立在现代内容管理系统之上的高端站点中,存在更多变量:第三方广告,跟踪器和各种其他标注,CDN的性能(有趣的是有时内容传送网络使事情变得更糟),javascript执行,css超载,以及各种服务器端问题,如长查询。

显而易见的答案是每个开发人员清除缓存并不断查看Firebug插件的“net”部分。您还有其他什么方法可以衡量“网站拖动屁股”吗?

14 个答案:

答案 0 :(得分:29)

Yslow是一个可以帮助您的工具(浏览器扩展程序)。

  

YSlow根据雅虎的高性能网站规则分析网页以及为什么它们变慢。

答案 1 :(得分:11)

Firebug是Web开发人员必须具备的Firefox扩展,可以衡量网页上不同元素的加载时间。至少你可以排除CSS,JavaScript和其他元素需要花费太多时间来加载。

如果你确实需要缩短JavaScript和CSS的加载时间,那么Web上就有各种各样的JavaScript和CSS压缩器,只需从换行字符和注释中取出不必要的文本。当然,为了发展起见,请保留一个普通版本。

如果你使用PNG,我最近遇到了一个PNG优化器,可以缩小名为OptiPNG的PNG大小。

答案 2 :(得分:8)

“页面加载时间”通常不容易定义。 这取决于您使用的浏览器,因为不同的浏览器可以并行执行更多请求,因为javascript在不同的浏览器中具有不同的速度,并且因为渲染时间不同。

因此,您只能使用您感兴趣的浏览器来衡量真正的页面加载时间。 页面加载的结束也很难定义,因为在页面上的所有内容都可见之后可能存在Ajax请求。这会计算页面加载吗?

最后但并非最不重要的是,实际页面加载时间可能并不重要,因为“感知性能”才是最重要的。对于用户来说重要的是什么时候有足够的信息来进行

Markus

我不知道任何方式(至少我没有告诉你:))会自动测量您的网页感知加载时间。

使用AOL Pagetest用于IE和YSlow用于firefox(链接见上文)以获得加载时间的“感觉”。

答案 3 :(得分:5)

安装适当的调试代理(我完全推荐Charles

您不仅可以看到响应时间/大小的完整细分,还可以保存数据以供以后分析/比较,以及摆弄请求/响应等。

(编辑:Charles对调试SOAP请求的支持是值得的,它的共享软件费用微不足道 - 仅仅这一周它就为我节省了半天的脱发!)

答案 4 :(得分:4)

上次我在一个高容量网站上工作时,我们做了几件事,包括:

如果你想快速浏览,比如说第一次近似,我会选择YSlow ,看看影响你应用中网页加载时间的主要因素是什么。

答案 5 :(得分:4)

我经常使用webpagetest.org,您可以使用a very detailed report of page loading time在不同的浏览器(尽管只有msie 7-9)从不同位置执行性能测试,具有不同的设置(迭代次数,连接速度,首次运行vs第二次访问,如果需要,不包括特定请求,如果需要,可以使用凭据......)。

结果是{{3}},它还提供了如何优化的建议。

它真的是一个很棒的(免费)工具!

答案 6 :(得分:3)

好吧,叫我老式但是......

时间卷曲-L http://www.example.com/path

在linux中:)除此之外,我是前面提到的YSlow的忠实粉丝。

答案 7 :(得分:3)

PageSpeed 是Google提供的一种在线检查工具,非常准确可靠:

https://developers.google.com/pagespeed/

答案 8 :(得分:1)

如果是asp.net,您可以使用Trace.axd。

Yahoo提供的yslow非常适合检查javascript

答案 9 :(得分:1)

如上所述的YSlow。

并将其与Fiddler结合起来。如果您想查看哪些页面对象占用的带宽最多,哪些页面对象在服务器上被压缩,意外的往返行程以及正在缓存的内容,那就太好了。它可以让您大致了解客户端Web浏览器中的处理时间,而不是服务器和服务器之间的时间。客户端

答案 10 :(得分:0)

Apache Benchmark。使用

ab -c <number of CPUs on server> -n 1000 url

可以很好地估算网页的速度。

答案 11 :(得分:0)

Safari中,Network Timeline(在您必须专门启用的“开发”菜单下可用)提供有关各个页面组件加载时间的有用信息,以及显示每个组件何时开始加载。

答案 12 :(得分:0)

Yslow很好,而IE的HttpWatch也很棒。但是,两者都错过了用户最重要的指标“页面何时 - 高于首屏 - 准备好供用户使用?”。我认为还没有解决过......

答案 13 :(得分:0)

显然有几种方法可以确定响应时间,但挑战始终是如何衡量在浏览器中花费的渲染时间。

我们有一个受控的测试阶段,我们使用几个自动化工具来测试应用程序。我们从此测试生成的输出之一是每个事务(点击)的fiddler跟踪。然后我们可以分析fiddler跟踪以了解最后一个字节的时间,并用页面的总时间减去它。

像这样的东西 1. A =通过自动化工具测量的总响应时间(在我们的例子中,我们使用QTPro) 2. B =最后一个字节的时间(服务器+网络时间,来自fiddler跟踪) 3. C = A-B(大约渲染时间,或浏览器花费的时间)

我解释的以上所有内容都可以作为标准的测试过程,并且测试结束时我们可以产生在每一层花费的时间的分解,例如渲染时间,网络时间,数据库调用等......