韩师傅就是我

测试开发工程师

用户交互的响应时间究竟多少才合理

从一道面试题开始

面试中聊到性能测试、聊到响应时间,有没有被这样的问题给考住?

“你刚才说页面响应时间大于1秒钟,就是性能不好,这个1秒钟是怎么来的?为什么不是10秒钟或者500毫秒”

其实这个看似不起眼,常常是由拍脑袋拍出来的阈值,是性能测试的“第一性”问题,非常值得聊一聊。

性能指标通常分两类,一类是响应时间,一类是资源消耗(比如cpu占用,内存占用),今天我们主要来探讨下,前端页面的响应时间究竟多少才合理。

先来看看谷歌的做法

其实用户判断慢和卡的标准,来自于人类视觉和心理的局限。所以,以下的数据适用于前端web页面(浏览器里展示的那种页面),但思考方式适用于任何带图形界面的场景。(比如安卓/iOS APP,比如你加小朋友的小天才手表)

谷歌的做法-RAIL模型

  • 谷歌把用户对web网页的操作归纳为以下4种场景

  • 结合用户对不同场景下不同的性能预期,制定了如下的标准

场景

合理范围

备注

响应(Response)

50毫秒内处理事件

这里主要是指,提交给主线程的task要在50毫秒内处理完。否则主线程一直阻塞,就无法及时响应用户操作了。

动画(Animation)

10毫秒内生成一帧

  • fps=60要求16毫秒绘制一帧,这里留了buffer
  • 动画不仅仅指视觉动画、还包括滚动操作、拖动操作等

空闲(idle)

最大限度的延长空闲时间

这里的空闲不是让用户界面闲着不动的意思,是指要让主线程尽量保持空闲,这样才能随时响应用户对界面的操作。

加载(load)

5秒内提供内容并实现交互

这里真的是指用户界面层面了,5秒钟网页还加载不出来还不能交互,就太慢了。

谷歌的依据又是什么

  • 谷歌在描述RAIL模型时提到,上边的时间数据参考了雅各布尼尔森团队(Jakob Nielsen)的人机交互研究成果
  • 1993年Jakob Nielsen在它的文章《Response Times: The 3 Important Limits》中,提到了3个阈值,他说

关于响应时间的基本建议三十年来一直都是一样的 [Miller 1968; Card et al. 1991]:

  • 0.1秒大概是让用户感觉到系统瞬间反应的极限,也就是说除了显示结果之外,不需要任何特殊的反馈。
  • 1.0 秒大概是用户思维不被打断的极限,尽管用户会察觉到延迟。一般来说,延迟超过 0.1 秒但少于 1.0 秒时不需要特别的反馈,但用户确实会失去直接操作数据的感觉。
  • 10 秒是让用户将注意力集中在对话上的极限。对于较长的延迟,用户会希望在等待计算机完成时执行其他任务,因此应向他们提供反馈,表明计算机预计何时完成。如果响应时间可能变化很大,则延迟期间的反馈尤其重要,因为用户将不知道会发生什么。
  • 谷歌在此基础上,增加了0~16毫秒这个时间范围,并制成下表。

所以,现在你知道,开头的那道面试题该怎么答了吧?

说句题外话

Jakob Nielsen的官网看下,你会感叹,我们常挂在嘴上的所谓“点点点”(用户体验)也能搞出一堆成果,其实大多数情况下都不是工作没有技术含量,让我们套用斯坦尼斯拉夫斯基的那句名言结束这篇文章,“没有小角色,只有小演员”

 

用户交互的响应时间究竟多少才合理

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Scroll to top