perf_counter究竟是做什么的?

7
阅读关于timeit.default_timer()的文档(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()是否只是选择保持可移植性?我的意思是,如果系统是Windows,则返回time.clock(),否则返回time.time(),以使上述定义的精度等级仍然成立,对吗?
简而言之,perf_counter()如何工作?
1个回答

3
在Python 2.7和Python 3.4之间,time.perf_counter()被引入。现在,timeit.default_timer()不再需要处理最佳时间源的选择,因为这个问题现在已经在time模块中处理了。
在后台,time.perf_counter()只是调用了最好的可用C API。详细信息在PEP 418中,包括新的Python时间API和操作系统本地时间API的描述。

2
那么,time.perf_counter()是否执行了timeit.default_time()之前的操作? - zer0uno
就功能而言:是的。就实现而言:不是。 - maxy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接