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

图 1: 测量反应时间的两个主要组成部分。
为了准确测量反应时间,刺激开始的确切时间(A 点)必须被知道,参与者反应发生的时间(B 点)也必须被了解,因为反应时间是这两个点之间的差值。从这两个点,可以很容易确定参与者的反应何时发生,但确切的刺激开始时间(A 点)却难以准确知道。
为什么确定 A 点何时发生是有挑战的?影响刺激出现时间的主要原因有三个:
屏幕刷新率: 显示器的刷新率为 60Hz,因此如果某件事被安排发生,它只能在刷新时发生。尽管在毫秒级别上,这也是一个重要的量化因素(我们稍后将讨论如何使用请求动画帧进行测量),因为它直接影响实验的顺序。
编程的性质: 所有实验均基于代码,为了执行代码,必须经过处理,因为没有任何东西是瞬时的,通常需要 1-2 次刷新周期。
设备容量: 尽管这种情况并不常见,但如果参与者的设备容量非常慢,刺激呈现可能会滞后,因为系统延迟(如计算机冻结)。我们稍后将讨论如何检查这个问题(JavaScript 事件循环)。
总之,反应时间受到许多因素的影响,而这些技术过程建立在此之上,以准确确定刺激开始与参与者反应之间的时间。
同行评审出版物 行为研究方法
查看这篇于 2022 年 5 月发表在 Springer Nature 的 行为研究方法 的同行评审论文。作者得出结论,Labvanced 的反应时间测量与其他基于网络的工具相比是最准确的。

我们的过程:Labvanced 的精确计时流程

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

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

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

图 5: Labvanced 中请求动画帧机制的示例。
每 60 毫秒,显示器独立更新和刷新,这对所有计算机和屏幕都是一个常数。为了确定刺激呈现是否存在延迟(在毫秒范围内),请求动画帧在所有定时刺激发生的实例中使用。
假设您执行代码在 2000 毫秒后显示刺激,当您执行时,什么都没有发生,刺激将在下一个刷新率,即 60 毫秒后自动显示,在 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 精确计时的热门研究领域:
- 警觉性
- 认知衰退
- 感知
- 绩效测量
- 特征识别
理论上,您可以通过 在编辑器中创建反应时间变量来添加反应时间到任何实验。
请查看这个视频,了解如何在您的研究中添加 反应时间任务。
