Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance 什么';人能检测到的最小延迟是多少?_Performance_User Interface_Optimization_Response_Lag - Fatal编程技术网

Performance 什么';人能检测到的最小延迟是多少?

Performance 什么';人能检测到的最小延迟是多少?,performance,user-interface,optimization,response,lag,Performance,User Interface,Optimization,Response,Lag,可能重复: 我一直在分析一些JavaScript UI代码,因为它感觉有点滞后。到目前为止,我已经发现了一些瓶颈并对其进行了优化,但我想为此定义一个可测量的需求 为了不让人注意到滞后,反应应该以多快的速度发生?例如,按下键盘键和屏幕上出现字母之间的最小可检测延迟是多少?在什么情况下,进一步优化不会对人类产生任何影响 许多显示器的刷新率大约在60-120Hz范围内。这是否意味着神奇的数字大约是8-16毫秒?我听说一条经验法则,100毫秒足够快。 我将尝试找到一个链接 编辑: 一般来说,我发现任何

可能重复:

我一直在分析一些JavaScript UI代码,因为它感觉有点滞后。到目前为止,我已经发现了一些瓶颈并对其进行了优化,但我想为此定义一个可测量的需求

为了不让人注意到滞后,反应应该以多快的速度发生?例如,按下键盘键和屏幕上出现字母之间的最小可检测延迟是多少?在什么情况下,进一步优化不会对人类产生任何影响


许多显示器的刷新率大约在60-120Hz范围内。这是否意味着神奇的数字大约是8-16毫秒?

我听说一条经验法则,100毫秒足够快。 我将尝试找到一个链接

编辑:

一般来说,我发现任何超过100毫秒的速度都会被视为“瞬间”。比这更长的时间,延迟肯定会变得明显。当然,这会因人而异,也取决于延迟发生的环境

您可能会发现此示例很有帮助:

考虑到“按键”事件和屏幕上显示的字母是两个独立的帧,这意味着,如果用户在观看屏幕时按下某个键,他将希望在观看后准确地看到它。这“恰好在之后”意味着它应该具有60 Hz或更高的响应时间

出于这个原因,8-16毫秒的值确实应该是目标值,因为它将产生与电影中相同的效果。换言之,用户将无法感知此类值的延迟

但是,您必须记住,键盘有自己的轮询时间,并且不一定与脚本本身相关的额外延迟可能会干扰其时间。由于这些原因,瞄准高于60 Hz的值将使您获得更大的安全裕度,以应对可能增加较小延迟的其他可能影响

同样值得注意的是,在某些应用程序中,100 ms的延迟似乎不明显,但实际上是明显的,因为它对应于10 Hz,如果您以该刷新率播放电影,您很可能会意识到每个电影帧之间的间隔。因此,不应在足够通用的上下文中考虑此值

对于不同的条件和图像,人眼的灵敏度是不同的,所以你应该小心,并考虑到更高的刷新率,以适应这种情况。


提供了有关人眼如何感知屏幕特征及其变化的更多信息,并可能根据脚本的视觉影响,让您了解在给定上下文中应以哪种刷新率为目标。

如果事件仅发生一次,则100ms应为更高限值。如果事件是连续运动的一部分,那么应该是大约10-15毫秒,因为如果这种延迟发生在一行中,则可以注意到滑动物体(一次[一个或多个]像素)中的100毫秒延迟


这在某种程度上取决于上下文,也取决于延迟的内容。按键事件、滑入事件、其他机器上发生的实时事件,所有这些都有不同的“容差”级别:)

这是一个非常有趣的问题。我相信这方面的研究会有所不同,但肯定有一些非常好的研究。对于“即时”反馈,我记得测试人类最快的响应时间是10分钟左右,所以我记得眼睛在视频中可以每秒处理大约25帧。平滑动画的最小帧速率之间存在差异,响应出现“瞬间”的最大延迟。显然是的,但试图优化到1/25秒以上可能是一种浪费:)但人类无法感知60 Hz下一帧和一帧之间的边界。尤其是当只有一小部分屏幕正在更新时。此外,即使及时完成处理以使更新显示在“下一个”帧中,也不能保证该帧将在用户当前看到的帧之后立即显示。例如,缓冲可能由图形驱动程序完成,或在显示器内部完成(或两者兼有)。在大多数情况下,以在下一帧前完成为目标是过分的(例外:游戏)。尽管如此,脚本可能不止一个角色,我想最通用的方法是将其视为一部电影,从一帧到下一帧,整个屏幕可能会以多种方式改变。当然,在许多情况下,没有必要如此激烈,但这是一种数学方法。即使是在游戏中,100毫秒的延迟也可能会因游戏类型的不同而有所不同,因为延迟的含义以及我们对所讨论的游戏的感知方式。很好的例子,但我很确定我仍然可以看到80毫秒的延迟。还有其他人吗?尽管这是一个流行的答案,但出于某种原因,100ms似乎太长了,无法作为最小可检测延迟。@pepsi在可用性领域的经验法则是,0.1s被认为是“即时的”,1s被认为是“相当快的”,10s被认为是“感到无聊并寻找其他事情做”。但这些都是大概的数字,并不准确,意味着代表开始干扰手头任务的延迟,而不是最小可检测的延迟。是的,我(只能)检测到80毫秒的延迟,但我不会称之为“令人烦恼的慢”:)百事可乐-j-g-faustus说的话。100毫秒是一个一般规则,不是一个确切的答案。是的,我也可以说80ms的例子比前面的例子稍微长一点,但它仍然发生得非常快。与160毫秒的例子相比,它显然不那么明显。请不要认为100毫秒的延迟是瞬时的,而50毫秒的延迟是pe