简介
作为 Python
开发者,我们都希望代码运行更快一些,今天给大家介绍一个实用的工具模块 timeit
,它可以帮我们精确测量 Python
代码的执行时间。赶快来看看吧!
timeit
模块是 python
的内置模块,不需要另外安装。它为我们提供了一个重复执行代码片段的简单接口,可以准确地测量 Python
代码的执行时间,同时使用方法也非常简单,让我们能够更专注于业务代码本身,而不需要写额外的计时代码。
底层原理
timeit
模块利用 Python
中的 time
模块,在一个独立的进程中多次重复执行目标代码,计算总的执行时间。
示例代码
timeit
模块提供了一个函数 timeit()
,它可以让我们测量一段代码的执行时间。timeit()
函数的语法如下:
timeit(stmt, setup=None, timer=None, number=1)
其中,各参数含义如下
stmt
是需要测量执行时间的代码setup
是执行stmt
之前需要执行的代码timer
是用于测量时间的函数。默认情况下,timer
使用的是time.perf_counter()
函数number
是需要测量的代码的次数。默认情况下,number
是1
下面来看看它的基本使用示例
import timeit
def test_func():
print("Hello, world!")
print(timeit.timeit(test_func, number=1000))
运行这段代码,我们会得到输出
Hello, world!
...
0.007531400000000001
这表示,test_func()
函数在 1000 次执行中,平均每次执行的时间为 0.007531400000000001 秒。
除了 timeit
方法,timeit
模块还提供了 repeat()
方法,这个方法可以多次执行一个函数,并返回每次执行的执行时间。timeit.repeat()
方法的语法如下:
timeit.repeat(stmt, repeat=3, setup=None, timer=None, number=1)
其中
stmt
是需要测量执行时间的代码repeat
是需要执行的次数setup
是执行stmt
之前需要执行的代码timer
是用于测量时间的函数。默认情况下,timer
使用的是time.perf_counter()
函数number
是需要测量的代码的次数。默认情况下,number
是 1
以下是一个使用 timeit.repeat()
方法测量函数执行时间的示例
import timeit
def test_func():
return 10 ** 2
print(timeit.repeat(test_func, repeat=3))
运行这段代码,我们会得到以下输出
[0.0616678, 0.0615304, 0.062235100000000015]
小结
timeit
模块是一个非常简单易用的代码执行时间测量工具。它可以帮助我们快速测量代码的执行时间,并对代码进行优化。