WhyPerformance Matters, Part 1: The Perception Of Time
WhyPerformance Matters, Part 1: The Perception Of Time
为什么性能重要 第1部分:时间感知
作为一名开发者,包括我,都喜欢以任务为导向。喜欢有个指引直接到最佳结果。没有清晰的指引可以遵循,就没有安全感。这就是为什么我们都希望知道该怎么做,喜欢一步一步的教程和操作说明。然而这样的准则,需要一定的理论基础和丰富的知识、经验。
出于这个原因,我不会直接给你结构化的答案,不会教你怎样让网站运转得更快。相反,我的目标是给你理由和理论,为什么是这样运转的。我会用现实世界观察到的例子,结合物理心理学和神经心理学的原理,来回答一些“为什么”,比如:
爱丽丝:永远是多远?白兔:有时候,只是一秒 ——爱丽丝漫游仙境
除此之外,我还会讲一些心理学相关的案例,比如怎样对现有网站的性能进行优化,竞争对手性能更好的时候要怎样处理,怎样让用户在浏览网站时几乎感觉不到有等待时间?知道了这些“为什么”以后,希望你下次参与优化过程时,能有创造性的思考,找到自己的方向,实现最佳效果。
每一个指引、教程、指南都有一个“为什么”的根
基本概念
首先我们确定一些下文会用到的术语和概念。
时间可以从两个不同的点进行分析:客观时间和心理时间。当我们说可以用秒表度量的时间的时候,我们是在说客观时间或者时钟时间。但是,用户在等待网站、APP响应的时候,感知到的时间跟客观时间是不一致的。这是说的用户感知的时间,是指心理时间或大脑时间。这个时间是心理学家、神经学家,还有我这种古怪的人感兴趣的。
我们大脑里的心理时间与时钟上的客观时间通常不太一样
性能优化是一个改进过程,用来提升服务、反馈或者其他响应的速度,以满足用户的期望。
我们定义,用户需要等待系统响应叫做人与计算机的风格(human-to-computer style),那些就像现实生活中的对话一样,基本上没有延迟的响应, 称为人与人的风格(human-to-human style)。
性能预算,Tim Kadlec定义为“就像字面意义上说的:为网页设置一个预算,绝对不允许超出”。在本文中,我们把性能预算与时间直接关联——比如加载页面、响应用户输入等。
有了这些定义,我们继续探究。
客观时间
就像之前定义的,客观时间就是可以用时钟测量的时间。这个系列的第一部分,我们讨论,怎样在项目中有效地利用客观时间。
“时间就是金钱”
这句话出自本杰明·富兰克林的Advice to a Young Tradesman。如今这句话依然正确。根据最新的一项研究,只需要3秒访问者就会放弃一个网站。每改善1秒,沃尔玛就能增加最多2%的转化率。汽车零部件零售商 AutoAnything 把加载时间缩短一半后,销售额增长了 13%。用户重视自己的时间,越来越多地期待人与人风格的沟通。
越来越多的用户期望线上系统有人与人风格的沟通
新的沟通方式需要新的设计和开发思维。在互联网行业中,我们一直注重速度和性能,一直强调快速沟通的重要性,一直在努力追求一些指标,如秒数、字节数、每秒帧数等。我们知道了怎样用技术让网站的速度变得更快,我们还不断地被业界领先的开发者和公司教导,用户与网站交互的最佳时间。2014年11月,DimitriGlazkov、Jochen Eisinger和ChrisHarrelson在Stateof Blink的Blink渲染引擎的宣讲中,提出了成功平台的定义。
该图片来自Platformsuccess model from Google
多年的“2 秒加载时间”建议,现在被改为 1 秒了。普通的开发人员和项目经理会满足于一个简单的答案,比如“更长的加载时间影响搜索排名”,但是这些建议是基于什么理由?设定性能预算的时候,有多少自由度?有没有比数字更有趣、更有创意的方法给用户更好的体验?这是本文将要讨论的主要问题。
设定性能预算
如前文定义,性能预算是指在线系统中,特定操作时,不允许超出的时间限制。一般人与人的对话中,提问和回答的时间间隔非常短。在心理学中,较短的时间间隔分为 4 种时间段,即0.1~0.2秒,0.5~1秒,2~5秒和5~10秒。
心理学时间段
(1)0.1~0.2 秒
研究指出,这是瞬间行为(instantaneous behavior) 的最大时间间隔,这时用户几乎不会注意到延迟。(这是人收到刺激时,一般人的反应时间,比如接住掉落的笔,或者从烫手的杯子上抽出手)
(2)0.5~1 秒
这是即时行为( immediate behavior) 的最大时间间隔。这通常是人与人交谈的反应时间。(根据研究,大部分成年人可以短期内一次记住5~9项内容,复杂的自然图像和视觉对象识别处理时间不超过1/10秒,这表示处理5~9个物品的短期记忆,会花费0.5~0.9 秒,因此,1秒是保持思维不间断的最大时间)用户可以感知到这个区间内的延迟,但是很容易接受。在这个时间范围内,用户的命令(比如按钮或者链接点击)已经被接收,但是还没有发出去,就需要有个提示。
(3)2~5 秒
心理学家 Mihaly Csikszentmihalyi 定义了心流(flow)或者说最佳体验,是说一种状态,集中精神,或者将个人精神完全投注在某种活动上。
(虽然受主观影响,对最佳时间的定义范围上下有波动,但是在网络上用户专注的时间大部分都在 2~5 秒内。这就是为什么在很多年里,2秒一直都被当做最佳页面加载时间)
(4)5~10 秒
根据美国医学图书馆生物技术信息中心的研究,人们的平均注意力正在从2000年的12秒减少到2015年的8.5秒。可以假设10秒为用户最大注意力时间(attention span)。这时候用户会继续专注自己的任务,但很容易分心。在这个时间段,就需要系统告诉用户当前进度,如果不这样做,可能会永远失去这个用户。(当然,集中精神的时间常常会超过10秒,甚至能达到 20秒~20分钟,这种长期关注被称为“选择性持续关注”,但是,首先,这种时间跨度很容易根据不同情形而波动;其次,没有几个网站可以吹嘘自己的用户能都能忍受超过一两分钟的时间。)
现在我们把这些定义应用到上面的 platformsuccess model上,可以把1秒加载时间、0.1 秒响应时间,翻译成更容易理解的话:
立即加载,对用户动作做出即时反馈
我们人类体内的秒表,从穴居时代就设定好了。因此,你可以放心地利用上面的时间范围,确定项目的性能预算。然而没有上下文的时间没有意义。假设有这样一个问题,“一个过程需要花费10秒钟完成”,你怎样回复?不用着急回答。
“一个过程需要花费10秒钟完成”
好了么?我打赌你想的第一件事是,“什么样的过程?”你的大脑会根据你的生活经历、当前的思维、情绪等,列一遍可能的情景。然后,你的大脑选定一个情景,评估这件事的处理时间,再跟10秒钟对比一下。
也就是说,多数时候,我们不是随机选择一个时间段,而是选择一个特定的上下文。首先,上下文可以由我们自己定制,比如为了满足用户对人到人风格的交互需求,需要做性能优化;其次,上下文可能来自竞争对手,我们就是在追赶领导者(chase-the-leader scenario)来达到别人设定的目标。下面分别分析这两种情况。
性能优化的必要性:20%法则
大多数情况是这样,客户说网站上的搜索速度很慢。你检测发现展示搜索结果要花 5 秒钟。采用一些优化技术后,降低到4.5秒。你高兴地给客户发了一封邮件,说了这件事。得到的回复是:“并没有觉得变快”。太伤心了。我们试着站在客户的立场上来看看,为什么觉得没有发生变化。
用户几乎没有意识到你做了优化,还没到该庆祝的时候
1834 年,实验心理学的创始人之一——ErnstHeinrich Weber提出了差别阈值(difference threshold)或者叫最小可觉差(just noticeable difference JND),代表人类或者动物,对于某一特定的感官刺激所能察觉的最小改变。后来他的学生 Gustav Theodor Fechner把这个定律用到了感觉测量上,奠定了心理物理学的基础。这就是后来的韦伯—费希纳定律(Weber-Fechner law )。该定律现在仍被许多科学家当做理解感知的重要工具。
时间也适用于韦伯—费希纳定律。心理物理学的实验表明,在不超过30秒的情况下,时间的最小可觉差大概在 7%~18%。基于此实验,韦伯—费希纳定律可以简化为20%法则,即为了让用户感知到差异,需要至少改变20%。
韦伯—费希纳定律可以简化为20%法则
我们回到上面的例子,用户没有感知到搜索结果页的优化。原来返回结果要5秒,应用20%法则的话,能计算出来,要让用户感知到差别,新的搜索结果页至少需要比原来快1秒:
5秒 x 0.2 = 1秒
这就是为什么用户没有感知到0.5秒的优化。
上面说的是性能优化,这个定律也可以用在相反的方面。如果你正在开发一个功能,会减慢页面速度。你可以应用20%法则,来确定性能的降低会不会被用户注意到。新代码会减慢速度但又不损害用户体验,称为退化冗余(regression allowance)。
注意:我们这里说的20%是在说“可感知”,而不是说做到这样就可以了。要让用户赞赏你的体验优化,需要远远超出这个门槛。
但是,当你的竞争对手有了显著的性能优势的时候,你该怎么做?甚至技术上做不到20%的退化冗余怎么办? 这种情况下,我们可以利用 G. Moore在他的书Dealing with darwin中说的,那就是中和(neutralization)(足够就好)。
中和,还是追赶领导者?
当两个服务的时间可以感觉到有差距,但差距还没有大到影响用户的选择,这就叫做时间中和。这种情况下,可靠性、可用性和其他品质相关的因素发挥更重要的作用。换句话说,如果你比对手有更好的服务,时间中和是一个不错的选择。
当竞争对手有同样的功能,而且速度更快的时候,我们该怎么做?
再回到这个搜索需要5秒钟的例子。假设一个竞争者出现在市场上,有非常相似的搜索服务:相同的功能、相同的结果和相同的感觉。问题是,他们的搜索结果只需要2秒,而不是5秒。在这里应用20%法则没有意义。我们不是跟自己竞争,我们是在跟竞争对手对比。我们做一些假设:
(1)我们不能把搜索结果减少到2秒(如果那么简单,可能我们早就做了)。
(2)如果做不到2秒,次一等的解决方案是使用20%法则,相对于对手的2秒,我们做到
2秒 + 20% = 2.4秒。
2.4 秒时,用户就感知不到我们和竞争对手在搜索结果上的区别了。但是2秒做不到的话,2.4 秒很可能也做不到。
我们不能直接做到2秒,再增加20%的余量也做不到
当比较两个时间段的时候,也就是我们例子里的2秒和5秒,这中间有一个神奇的心理门槛,比该阈值长的时间会被用户感知为靠近5秒,比阈值更短的时间会被视为更靠近2秒。在R. Church、M. MacInnis、P. Guilhardi和其他布朗大学的研究者做的动物时间实验中,表明这个值不是简单的两个时间的平均值。而且这个时间是可以被预测的,是几何平均值,不是算术平均值。人类参与的研究也证实了相同的发现。
两个数字之间的几何平均值,可以通过以下公式算出来:
应用到我们的两个数字这里就是:
≈ 3.2 seconds
几何平均数作为时间中和的图示
对于2~5秒的结果,3.2秒是中和的阈值。在这个点上,用户会发现有差别,但是差别不会重要到影响用户选择我们的服务。这时我们的服务品质和可靠性更重要,这已经超出本文的范围了。
至此,我们完成了时间的基本分析。现在我们对一些广泛采用的行业标准有了更深的理解,比如页面加载时间和响应时间。我们有了设置性能预算的参考,也知道了有竞争对手的时候,该怎样设定性能优化的目标。
但是,正如开头提到的,另外一种时间,通常比用秒表测量的时间更重要。女士们、先生们,第二篇将讨论心理时间。
参考文献:
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2689612/ 【the processing of complex natural images and visual objectrecognition require a mere split second】
韦伯定理(Weber-Fechner law)分为韦伯及费希勒两种定理,韦伯定理又称为“感觉阈限定律”(absolute threshold),用于差异阈限定义。
1860年由德国心理学家的费希勒提出费希勒定律,定义于绝对阈限上。
韦伯定律:在同类刺激之下,其差异阈限的大小是随着标准刺激强弱而成一定比例关系的,K=ΔI/I K为常数。
费希纳定律:在绝对阈限之上,主观的感觉强度与刺激强度的改变,两者间呈对数的关系,亦即,刺激强度如果按几何级数增加,而引起的感觉强度却只按算术级数增加。
' 相较于一般人,调音师对音调的高低敏感度具有较低的差异阈