响应时间准确性



我将在Python 3.4中使用Pygame和PIL编程一个响应时间实验。Python的内置时间函数是否足够精确到毫秒级的响应时间精度?PyParallel是必要的,还是只需要用于脑电图或眼动追踪实验?

Python的时间函数不是这里的限制因素。根据您的特定计算机和操作系统,您可以获得微秒级的分辨率(根据各种关于多任务处理等的警告)。

真正的问题是硬件。 如果您在USB键盘上收集响应,例如,具有不确定的延迟和可变性,那么担心毫秒时间分辨率是没有意义的。您需要指定硬件设置,如果需要毫秒计时,则需要对计时性能进行基于硬件的验证。

您还需要指定特定任务的需求。如果你需要进行多次平均试验,那么许多糟糕的硬件分辨率就会消失。如果你比较不同条件下的反应变化,而不是对绝对反应时间感兴趣,那么恒定滞后的影响就会消失(即使滞后是未知的)。

计算机可以比这项任务更准确地跟踪时间。下面以秒为单位打印调用函数后按输入所需的时间。

>>> import time
>>> def timing():
...     t = time.perf_counter()
...     input('go!')
...     print(time.perf_counter()-t)
...
>>> timing()
go!
0.09541451768191678

只要你在等待用户输入的时候没有做任何奇怪的阻塞的事情,内置的计时函数应该是足够的。

最新更新