ActionScript new Date()或getTimer()的毫秒精度

ActionScript new Date()或getTimer()的毫秒精度,time,computer-science,probability,Time,Computer Science,Probability,我想量一下这个尺寸。在这个例子中,我使用的是actionscript,但是这个概念才是真正重要的,所以如果您想显示任何代码,请随意用您选择的语言回答 用户坐在屏幕前,屏幕上将显示一个红点。当他们看到红点时,他们点击空格键 我的逻辑如下:让红点可见,创建一个新的日期,等待空格键,创建一个新的日期,使用一个对象查找以毫秒为单位的差异 我觉得这应该行得通,但我得到了一些令人不安的值。以下是一个典型的结果集: [254, 294, 296, 305, 306, 307, 308, 309, 310, 3

我想量一下这个尺寸。在这个例子中,我使用的是actionscript,但是这个概念才是真正重要的,所以如果您想显示任何代码,请随意用您选择的语言回答

用户坐在屏幕前,屏幕上将显示一个红点。当他们看到红点时,他们点击空格键

我的逻辑如下:让红点可见,创建一个新的日期,等待空格键,创建一个新的日期,使用一个对象查找以毫秒为单位的差异

我觉得这应该行得通,但我得到了一些令人不安的值。以下是一个典型的结果集:

[254, 294, 296, 305, 306, 307, 308, 309, 310, 308, 312, 308, 338, 346, 364, 370, 380, 387, 395, 402, 427]
请注意,有些值很接近,308被多次记录。因此,我的问题如下:

  • 我的代码或我使用的逻辑是否存在某种缺陷
  • 用户能够产生重复次数的概率是多少
  • 如果概率很低,那么我在这里遗漏了什么
    我还应该注意到,我(非常意外地)收到了12毫秒的响应时间。我当时正在测试这个应用程序,就在红点出现的时候,我碰巧碰到了空格键。因此,我怀疑我的代码无法判断准确的时间,至少准确度为±12毫秒:)。

    我假设反应时间具有某种正态分布,因此某些结果更可能发生多次。你的反应时间是254到427,也就是说174个不同的结果。所以问题是在x测试中,在x测试中,有多少可能是相同的?因为它可能是正态分布的,所以这会增加

    如果您在计算机上运行它,请记住其他应用程序/线程与CPU交互。此外,如果您通过USB或PS/2连接,操作系统中会出现一些延迟(USB设备/集线器会被轮询,而PS/2会直接连接到IRQ)

  • 不,逻辑似乎很好。这是一种非常简单的测量ms时间的方法
  • 事实证明,人类和计算机很少能达到毫秒级的精度
  • 我被闪光灯绊倒了 经过几个月的开关测试,我们发现了这个问题;语言。从flex计时器上的ASDOC:

    不建议延迟低于20毫秒。定时器频率 限制为每秒60帧,这意味着延迟低于16.6 毫秒会导致运行时问题

    Flash以每秒60帧的帧速率运行。我想这意味着,如果你试图测量时间,并且想要精确到16毫秒以下,你就不走运了。然而,这确实解释了为什么我会看到重复的值,因为这个“60 FPS窗口”中的任何东西都是在同一时间测量的

    [254, 294, 296, 305, 306, 307, 308, 309, 310, 308, 312, 308, 338, 346, 364, 370, 380, 387, 395, 402, 427]