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

29 浏览
0 Comments

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

我想测量执行一个函数所需的时间。我无法让 timeit 正常工作:

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

admin 更改状态以发布 2023年5月21日
0
0 Comments

使用 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?

另请参见:

0
0 Comments

使用 time.time() 来测量两个时间点之间的经过时间(wall-clock 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() 以获得良好定义的行为。

0