
精确计时
背景与上下文
心理研究中的反应时间用于量化认知过程和行为。反应时间的明确界定与刺激出现与响应之间所经过的时间有关。
测量反应时间有两个组成部分:刺激开始的时间和参与者响应发生的时间,如图1所示。

图 1: 测量反应时间的两个主要组成部分。
为了准确测量反应时间,必须明确刺激开始的确切时间(点A)以及参与者响应发生的时间(点B),因为反应时间是这两个点之间的差值。从这两个点中,确定参与者的响应发生时间比较简单,但确切知道刺激开始的时间(点A)是很具挑战性的。
为什么确定点A发生的时间会很有挑战性?影响刺激出现时间的三个主要原因如下:
屏幕刷新率: 显示器的刷新频率为60Hz,因此如果某个事件被安排,它只能在显示器刷新时发生。虽然这是以毫秒为单位的,但这是一个重要的量化因素(我们稍后讨论它是如何通过请求动画帧进行测量的),因为它直接影响实验序列。
编程的性质: 所有实验都是基于编码的,为了执行代码,必须经过处理,因为没有什么是瞬时的,通常需要1-2次刷新周期。
设备能力: 尽管这并不常见,但如果参与者的设备能力非常慢,刺激呈现可能会延迟,因为所有系统延迟(如计算机冻结)都会造成影响。我们稍后会讨论如何检查这个问题(JavaScript事件循环)。
总之,反应时间受许多因素的影响,这些因素是构建技术流程的基础,以准确确定刺激开始和参与者响应之间的时间。
同行评审出版物 行为研究方法
查看在 Springer Nature 的 行为研究方法 中发布的这篇同行评审论文。作者总结认为,Labvanced 的反应时间测量比其他基于网络的工具更为准确。

我们的流程:Labvanced 的精确计时管道

图 2: Labvanced 中的精确计时和捕获精确反应时间的一般管道。
为了提供精确的计时和反应时间,我们的软件遵循以下步骤 (图 2):
预加载(缓存): 确保所有实验刺激在实验开始前已被预先加载并在本地可用,这样加载过程不会在实验进展中进行。因此,如果有参与者想参与一个研究,所有刺激(图像、音频和视频)已经从我们的服务器获取并加载到他们的计算机上。
预渲染: 当实验开始时,内容会递归生成,以便下一个帧和试验在后台加载,并在参与者准备好继续时立即可用。这由一个预渲染机制驱动。
参与者特定测量: 由于在线研究在浏览器中开始,每个参与者的计算资源(GPU、CPU)是有限的,必须考虑它们对性能的影响。我们会捕获任何潜在的延迟,并将其提供给研究者作为修正变量,也可以用作排除标准。
保存参与者的响应
所有实验都是在参与者的计算机上本地进行的。因此,从技术上讲,进行实验并不一定需要互联网。互联网仅在开始时需要预加载实验,然后在结束时上传数据和响应到服务器。
然而,如果条件允许,我们的软件设置为在每次试验后自动保存数据记录和响应。这很重要,因为:
- 本地浏览器不能保持或缓存无限量的内存。通过频繁备份,可以释放内存,系统不会面临延迟风险。
- 如果参与者停止或退出,至少在他们完成的试验和提供的响应中会保存一些数据,以便在他们终止参与之前进行记录。
关于时间戳
在实验活动期间,Labvanced 应用程序无法访问计算机上的所有其他进程或部分。然而,在记录反应时间时,需要时间戳,应用程序可以访问计算机时钟的系统时间,以确定何时发生点A(刺激开始)和点B(参与者的响应)。由于计算机具有通用系统时钟,因此无论您在何处/使用什么,都是一样的。
关于系统架构和反应时间数据流
虽然上述流程捕获了反应时间过程的基本步骤,下面是对 Labvanced 中为确保反应时间测量准确精确而进行的所有工作更详细的说明。
预加载(缓存)

图3: Labvanced 中预加载/缓存机制的主要步骤。
预加载或缓存发生在实验开始之前。Labvanced 的设置是所有实验刺激在研究开始之前被下载。这包括所有元素,如图像和视频。它们都从 Labvanced 服务器上获取并下载到参与者的设备上,以便在实验过程中不必进行任何下载 (图 3)。
预渲染机制

图 4: Labvanced 中预渲染机制的主要步骤。
我们有一个 预渲染机制,用于提前构建实验任务、试验和框架的结构。例如,如果您在任务的试验 #1 中,我们会预渲染当前和即将进行的试验中的所有框架,以确保在实验期间不会发生加载,包括指令、文本、音频对象、注视十字等。通过提前构建试验和框架,可以防止浏览器变慢或被压垮 (图 4)。
参与者特定测量
由于设备和计算机之间的固有差异,性能会受到定义的影响。简单来说,在资源有限的本地系统上进行实验(即速度和内存不是无限的,但受到其技术规格的限制),刺激可能不会按预期显示(例如,可能会有几毫秒的延迟)。
为了捕获这些设备和参与者特定的波动,我们拥有以下机制:
- 请求动画帧
- JavaScript 事件循环
请求动画帧

图 5: Labvanced 中请求动画帧机制的演示。
每60毫秒,显示器都会独立更新和刷新,这是所有计算机和屏幕的常量。为了确定刺激呈现是否存在延迟(以毫秒为单位),对于所有发生定时刺激的情况,使用请求动画帧。
假设您执行代码以在 2000ms 时显示刺激,当您执行它时什么也不会发生,刺激将在下一个刷新率时自动呈现,即在 60 毫秒后,即240毫秒标记。您可以测量这种微小的延迟,并在事后考虑。由于我们使用请求动画帧,您可以确切知道命令何时被执行(何时实际发生/出现在显示器上)并进行相应的调整 (图 5)。
JavaScript 事件循环
图 6: JavaScript 事件循环中的步骤,使用 Labvanced 确定计算机速度。 另一个关于参与者特定测量的例子与确定设备的速度有关。
如果您的计算机运行缓慢,可能是因为有活动的系统进程在使用可用 CPU。因此,浏览器正在利用有限的资源,结果一切都变得更慢。
为了确定这种情况是否发生在参与者层面,我们使用 JavaScript 事件循环与回调函数,这在后台自动运行(默认)以测量函数自我调用所需的时间。如果它在 5 毫秒内没有返回,意味着参与者的浏览器/计算机运行缓慢,可能会影响测量反应时间的实验结果的完整性 (图 6)。我们报告回调函数对于参与者返回所需的毫秒平均值。
对于在 Labvanced 完成的数千项研究,我们发现超过 95% 的参与者报告的值低于 3ms,有时甚至低于 1ms。但在某些情况下,平均结果为 200-300ms,这可能提示研究者考虑从最终数据集分析中排除该用户的数据。
Labvanced 反应时间和精确计时能力的主要特点:
我们测量参与者响应的主要特点包括 (图 7):
- 刺激呈现的时效性准确性
- 刺激呈现的空间准确性
- 眼动追踪准确性 和采样率
- 对每个参与者的设备和屏幕相关延迟进行量化和测量,从而允许标准化、被试间可比性和修正。这是通过上一节中描述的事件循环精确性和请求动画帧来实现的。

图 7: Labvanced 精确计时/反应时间解决方案的关键特点。
Labvanced 精确计时的优势
由于这些步骤和机制,Labvanced 提供了一种准确而精确的解决方案,用于在在线实验中测量反应时间。我们突出了我们平台的以下优势:
- 刺激的时控: 研究人员了解刺激在屏幕上呈现的确切时间,从而允许调整和准确测量。
- 强大的计算和编程机制: 为了确保研究者报告的数据是最准确的,我们使用强大的计算和编程机制来准确量化刺激在参与者屏幕上的出现。
- 经过试验和验证: 我们与世界各地的研究人员合作,微调我们的平台,因此,我们的功能已经通过无数研究和学术机构对我们的在线反应计时测量作为其研究和发表工作的基础进行试验和验证。
反应时间的样本数据和指标

图 8: 来自参与者在使用 Labvanced 进行 Stroop 任务会话的数据显示;右侧第三列展示了记录的反应时间。
您可以使用 Labvanced 的精确计时做的事情:
- 警觉性
- 认知衰退
- 感知
- 性能测量
- 特征识别
LV 图书馆研究:
有许多研究测量响应刺激所需的时间,这里有一些以反应时间测量为核心的任务示例:
- N-back 任务: 测量工作记忆容量的认知测试。刺激呈现后,参与者需要匹配它是否为 n 步之前呈现的同一刺激。
- Stroop 任务: 这个经典任务展示了当参与者面对不一致的刺激时(一个写着“黄色”的单词,但用蓝色显示)反应时间会增加的情况。
- 面部识别: 面部识别深深根植于人类本性中,反应时间可以用于测量参与者识别或区分两个或多个面孔所需的时间。
利用 Labvanced 精确计时的热门研究领域:
- 警觉性
- 认知衰退
- 感知
- 性能测量
- 特征识别
