我正在开发网络应用程序(基于Rails 3)。而且我真的不喜欢生成页面所需的时间 - 取决于显示的数据,它需要2.5秒甚至4秒。
所以我只是想知道在你的应用中生成页面的平均合理时间是多少。说你检查生成时间,例如它是750毫秒,并认为“好吧,即使没有缓存,这应该没问题”。或者当你看到1.5秒时,你会想到“噢,我的上帝,用户将不会等待这么久并离开网站”
答案 0 :(得分:13)
关于从查询到渲染的时间和用户体验,有大量的研究数据。我建议阅读this useit.com article。毕竟谷歌综合页面速度在其结果中有一个原因;)
3个响应时限是 就像我写这篇文章一样 1993年(基于40年的研究 人为因素先驱):
- 0.1秒给人一种即时反应的感觉 - 即 结果感觉就像是由它引起的 用户,而不是计算机。这个级别 响应能力至关重要 支持直接的感觉 操纵(直接操纵是 一种关键的GUI技术 增加用户参与和控制 - 有关它的更多信息,请参阅我们的原则 界面设计研讨会)。
- 1秒让用户的思维流畅通无阻。用户可以感知到 延迟,因而知道电脑是 产生结果,但他们仍然 感觉控制整体 经验,他们正在移动 自由而不是等待 电脑。这个程度 良好需要响应能力 导航。
- 10秒让用户注意。用户从1-10秒开始 绝对感受到了摆布 电脑,希望它更快,但是 他们可以处理它。 10秒后, 他们开始考虑其他 事情,让他们更难得到 一旦电脑回到正轨 终于做出回应了。
通常会延迟10秒 用户立即离开网站。和 即使他们留下来,也很难 他们要了解发生了什么, 使它不太可能 在任何困难的任务中取得成功。
根据经验,您应该始终瞄准优化时间与获得时间之间的平衡。当图像没有正确压缩,或者你的脚本/ css没有合并时,不要花费数天来优化一个例行程序。是的,速度越快越好,但通过设置智能缓存生成页面90%的增益在调整算法一周后增加了10%。
当框架必须加载所有东西时,也不要过多考虑第一渲染时间,而是使用压力测试,缓存与否,来模拟各种情况。
现在,一些数据;我工作的一些最新网站使用DotNetNuke,一个巨大的开源CMS,以及Asp.Net MVC,你更接近金属。 DotNetNuke的平均数据库查询平均页面时间为600-700毫秒。对于Asp.net MVC,它是70-100毫秒...用户真的喜欢第二个:)
答案 1 :(得分:5)
对此没有'正确'的答案 - 越快越好。我个人通常的目标是< 200ms,虽然我从经验中知道,除了简单的应用程序之外,在Rails中实现这一点非常困难。尝试找出你的瓶颈所在并缓存你的内容。
编辑:页面生成时间和页面渲染时间之间似乎存在一些混淆。显然,快速页面呈现是目标,并且在大多数网站上执行诸如减少HTTP请求之类的事情,gzipping CSS / JS是您获得大部分快速获胜的地方。但是如果页面本身需要4-5秒才能生成,那么你的应用就是你应该开始的地方你可能是正确的。
答案 2 :(得分:2)
取决于是否在2.5-4秒内没有显示任何内容,或者用户已经从一开始就看到(部分)页面,并且在2.5-4秒后完成加载。在这种情况下,用户不会经历2.5-4秒的负载。走http://www.nytimes.com/网站;我马上看到它的大部分内容,但根据Web Inspector,它需要1.94秒才能完全加载。
请记住,速度还取决于浏览器,计算机,互联网连接。对你而言,快速的事情可能会慢一些。
答案 3 :(得分:0)
测量您的apdex分数并查看其表现如何。这会给你一个粗略的迹象。从那里,您可以决定如何提高性能。
这还取决于您的网站是什么;企业或软件即服务(SaaS)的系统应用程序?如果是系统应用程序,则用户被迫使用它来协商性能。如果它是SaaS,则apdex分数越高,您失去用户兴趣的机会就越大。
有一些宝石可以衡量绩效并报告你的apdex是什么。
以下是更多信息:http://apdex.org/blog/?p=630
答案 4 :(得分:-5)
我的个人规则 - 任何页面都不应超过0.05秒,否则您会遇到麻烦。
只要您编写正确的代码,就不需要花费太多时间进行优化以保持在0.05以下。
如果你坚持使用巨型框架,那么你就不走运了。