【发布时间】:2010-06-25 10:28:48
【问题描述】:
我在一家开发心理测试的公司工作。其中一项测试测量候选人的反应时间。
有人知道按键与此按键事件可用的时间之间的最大延迟吗?有什么依赖关系? 是否有保证的最大响应时间?我读了大约 5 - 25 毫秒的内容。 处理键事件以最小化延迟的最佳方法是什么?
提前致谢, 凯文
【问题讨论】:
我在一家开发心理测试的公司工作。其中一项测试测量候选人的反应时间。
有人知道按键与此按键事件可用的时间之间的最大延迟吗?有什么依赖关系? 是否有保证的最大响应时间?我读了大约 5 - 25 毫秒的内容。 处理键事件以最小化延迟的最佳方法是什么?
提前致谢, 凯文
【问题讨论】:
Windows UI 处理非常复杂。它包括诸如按键优先级提升之类的算法,但如果另一个进程要求一个完整的 CPU 周期,它通常会等到下一个调度程序滴答(最坏的情况下,桌面系统上为 30 毫秒,服务器系统上为 60 毫秒),
要克服这个问题,您需要一个特殊的键盘驱动程序,它可以在相同的延迟下提供事件,而且还可以测量准确的时间。如果禁用动态 CPU 时钟切换(查找条目 QueryPerformanceCounter(),您需要知道如何从 DDK 调用它),则可以在 Windows 系统上进行准确的时间测量,在这种情况下,键盘事件仍然会以不可预知的延迟到达,但是原始总线事件将被正确地加上时间戳。然后你只剩下总线延迟,它应该小于你测量的标准偏差。另见What happens from the moment we press a key on the keyboard, until it appears in your word document
【讨论】: