📅  最后修改于: 2023-12-03 15:38:23.245000             🧑  作者: Mango
timeit
是 Python 的一个内置模块,用来测试代码的执行时间。在评估性能方面, timeit
是一种很方便的工具,因为它可用于测量各种代码段、函数或语句的运行时间。
Python 中 timeit
的基本用法是在代码文件或交互式 Python 环境中导入模块,然后使用 timeit()
函数来测量代码片段的执行时间。它的基本语法如下:
import timeit
def my_function():
# code to be timed
print(timeit.timeit(my_function, number=10000))
使用 timeit()
函数需要提供要测试的代码片段,通常可以将其定义为一个函数。
将要测量的函数传递给 timeit()
, number
参数表示测试代码的执行次数。在上面的示例中, my_function()
函数将被调用 10000 次,而函数调用的总时间将被返回。
timeit
还提供其他方便的函数,例如 repeat()
函数可以多次运行一个测试来评估其稳定性,甚至可以测量代码片段的内存使用情况。
在使用 timeit
时需要注意其所测试的代码本身不会对计时器的精度造成太大影响。例如,如果要测试的代码块包含 I/O 操作或者计算密集型任务,那么相对来说,它们所花费的时间将比计时器的误差要大得多。
为了获得更精确的测量结果,可以多次测试同一代码块,并计算平均值。在这些情况下,延迟较小的操作(例如使用 print()
函数打印时间戳)会影响计时器的精度,因此必须避免这些操作。
下面是一个示例函数,将比较列表推导式和 for 循环的执行时间:
import timeit
def list_comprehension():
return [i**2 for i in range(1000)]
def for_loop():
squares = []
for i in range(1000):
squares.append(i**2)
return squares
print(timeit.timeit(list_comprehension, number=10000))
print(timeit.timeit(for_loop, number=10000))
在这个例子中,我们定义两个计算平方数的函数:一个使用列表推导式,另一个使用 for 循环。我们在两个函数之间使用 timeit
进行比较测试。
运行上述脚本将输出结果。结果显示,列表推导式的执行速度更快。
在 Python 中使用 timeit
来度量代码的执行时间是非常有用的。虽然我们可以手动完成它,但使用 timeit
更加轻松方便,因为它在同一时间内测试了多次并报告平均值、最大值和最小值。这个功能极大地简化了性能评估的过程。