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

图 1: 测量反应时间的两个主要组成部分。
为了准确测量反应时间,必须知道刺激出现的确切时间(A点),以及参与者反应发生的时间(B点),因为反应时间是这两个时间点之间的差。通过这两点,可以轻松确定参与者的反应发生了何时,但要确切知道刺激何时出现(A点)是具有挑战性的。
为什么确定 A 点的发生时间具有挑战性?刺激出现时间受到三个主要原因的影响:
屏幕刷新率: 显示器的刷新率为 60Hz,因此如果某个事件被安排发生,它只能在显示器刷新时发生。虽然这在毫秒级别上是一个重要因素,但它会直接影响实验序列(我们稍后讨论如何通过请求动画帧测量这一点)。
编程性质: 所有实验都基于代码,为了执行代码,它必须经过处理,因为没有任何事情是即时的,这通常需要 1-2 个刷新周期。
设备能力: 虽然这并不常见,但如果参与者的设备能力非常慢,刺激呈现可能会延迟,因为系统的所有延迟(如计算机冻结)。我们稍后会讨论如何检查此问题(JavaScript 事件循环)。
总之,反应时间受许多影响技术过程的因素的影响,以便准确确定刺激出现与参与者反应之间的时间。
在 Behavior Research Methods 中的同行评审出版物
查看这篇于 2022 年 5 月发表在 Springer Nature 的 Behavior Research Methods 的同行评审论文。作者得出结论,Labvanced 的反应时间测量比其他基于网络的工具更为准确。

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

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

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

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

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

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

图 8: 使用 Labvanced 进行 Stroop 任务的参与者会话的数据报告;右侧第三列展示了记录的反应时间。
您可以用 Labvanced 的精准计时做的事情:
- 警觉性
- 认知衰退
- 感知
- 表现测量
- 特征识别
LV 库研究:
有许多研究测量反应刺激的时间,这里是一些以反应时间测量为核心的任务示例:
- N-back 任务: 一种测量工作记忆容量的认知测试。刺激被呈现,参与者被挑战去匹配它是否与 n 步前呈现的相同刺激。
- Stroop 任务: 这个经典任务演示了当参与者面临不一致的刺激(一个写着“黄”的单词但颜色为蓝色)时,反应时间会增加。
- 面孔识别: 面孔识别深深嵌入人类本性中,反应时间可以测量参与者识别或区分两个或多个面孔所需的时间。
利用 Labvanced 精确计时的流行研究领域:
- 警觉性
- 认知衰退
- 感知
- 表现测量
- 特征识别
