如何在Python中测量经过的时间?

2022-09-05 00:51:05

我想测量执行函数所花费的时间。我无法上班:timeit

import timeit
start = timeit.timeit()
print("hello")
end = timeit.timeit()
print(end - start)

答案 1

使用 time.time() 测量两点之间经过的挂钟时间:

import time

start = time.time()
print("hello")
end = time.time()
print(end - start)

这给出了以秒为单位的执行时间。


自Python 3.3以来,另一种选择可能是使用perf_counterprocess_time,具体取决于您的要求。在3.3之前,建议使用time.clock(感谢Amber)。但是,它目前已弃用:

在 Unix 上,以以秒为单位表示的浮点数返回当前处理器时间。精度,实际上“处理器时间”含义的定义,取决于同名C函数的精度。

在 Windows 上,此函数基于 Win32 函数,以浮点数的形式返回自首次调用此函数以来经过的挂钟秒数。分辨率通常优于一微秒。QueryPerformanceCounter()

自版本 3.3 起已弃用:此函数的行为取决于平台:根据您的要求,使用 perf_counter()process_time() 来明确定义行为。


答案 2

请代替 使用 。前者自动提供您的平台和Python版本上可用的最佳时钟:timeit.default_timertimeit.timeit

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() - 准确性?

另请参阅:


推荐