如何在Python中测量经过的时间?
如何在Python中测量经过的时间?
我想测量执行一个函数所需的时间。我无法让 timeit
正常工作:
import timeit start = timeit.timeit() print("hello") end = timeit.timeit() print(end - start)
admin 更改状态以发布 2023年5月21日
使用 timeit.default_timer
代替 timeit.timeit
。前者会自动提供平台和Python版本上可用的最佳时钟:
from timeit import default_timer as timer start = timer() # ... end = timer() print(end - start) # Time in seconds, e.g. 5.38091952400282
timeit.default_timer 根据操作系统分配到 time.time() 或 time.clock()。在 Python 3.3+ 中,default_timer 在所有平台上都是 time.perf_counter()。参见 Python - time.clock() vs. time.time() - accuracy?
另请参见:
使用 time.time()
来测量两个时间点之间的经过时间(wall-clock time):
import time start = time.time() print("hello") end = time.time() print(end - start)
这将以秒为单位给出执行时间。
另一种选项是自Python 3.3以来,根据您的需求使用 perf_counter
或 process_time
。在3.3之前,推荐使用 time.clock
(感谢Amber)。然而,它目前已被弃用:
在Unix上,以秒为单位返回当前处理器时间的浮点数。精度,事实上,是“处理器时间”含义的非常定义,取决于同名的C函数的含义。
在Windows上,该函数返回自第一次调用该函数以来经过的墙钟秒数,以浮点数形式表示,基于Win32函数
QueryPerformanceCounter()
。其分辨率通常优于一微秒。自版本3.3起弃用:该函数的行为取决于平台:根据您的要求使用
perf_counter()
或process_time()
以获得良好定义的行为。