生成网页的合理时间是多少?

时间:2010-10-05 21:48:21

标签: ruby-on-rails web-services performance ruby-on-rails-3

我正在开发网络应用程序(基于Rails 3)。而且我真的不喜欢生成页面所需的时间 - 取决于显示的数据,它需要2.5秒甚至4秒。

所以我只是想知道在你的应用中生成页面的平均合理时间是多少。说你检查生成时间,例如它是750毫秒,并认为“好吧,即使没有缓存,这应该没问题”。或者当你看到1.5秒时,你会想到“噢,我的上帝,用户将不会等待这么久并离开网站”

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以下。

如果你坚持使用巨型框架,那么你就不走运了。