阅读关于timeit.default_time()
的文档(Python 3.4),它说:
默认计时器,始终为time.perf_counter()。
但是阅读旧文档(Python 2.7),它说:
以特定于平台的方式定义默认计时器。在Windows上,time.clock()具有微秒粒度,但time.time()的粒度是1/60秒。在Unix上,time.clock()具有1/100秒的粒度,而time.time()更精确。
那么,perf_counter()
只是做一个选择来保持可移植性吗?我的意思是如果系统是窗口,它返回time.clock()
,否则time.time()
,以便上面定义的精度等级仍然保持为真,不是吗?
简而言之,perf_counter()
如何运作?
答案 0 :(得分:1)
在Python 2.7和Python之间的某个地方引入了time.perf_counter()
。现在timeit.default_time()
不再需要为选择最佳时间源而烦恼,因为现在已经在 time 模块中处理了。
在后台time.perf_counter()
只调用最好的C API。详细信息在PEP 418中,包括新Python时间API的说明和操作系统的本机时间API。