模块 timeit 提供了简单的接口用来测试一小段 Python 代码的执行时间。它提供了精确的时间函数和有效减少程序启动的退出的时间消耗,能多次执行一小段 Python 代码。
模块
timeit 提供了一个公共的类 Timer,它的构造函数接收一小段代码和一段初始化设置语句。初始化后调用方法 timeit() 就会重复执行代码片段,可以传入参数控制执行的次数,默认是 1000000,返回的时间精度单位是秒。
例子
下面是使用 Timer 的一个简单的例子。
执行:
第一次调用了 timeit(2) 执行了2次,然后打印了时间。
第二次调用了方法 repeat(),它的第一个参数整体是执行的次数,包括初始化语句。第二个参数和 timeit 一样,代码片段执行多少次,查看输出可以看到。最后返回一个时间的列表,列表数量和第一个参数一致,执行多少次,返回多少个时间。
多个语句
下面是更复杂的例子,初始化语句包括多条语句,多条语句使用分号分隔。定义了两个变量,一个是非空的列表,另一个空字典。执行代码把列表中的元素保存到字典。
执行:
命令行执行
除了使用编程方式调用,timeit 还提供了命令行选项测试。
运行一个模块,使用 -m 选项告诉 Python 解释器加载指定的模块。
python3 -m timeit
下面显示帮助信息。
命令行传递参数不和编程方式一样,编程方式是一个长字符串,命令行是使用多个字符串,缩进使用空格符。
如果要测试的代码比较复杂,可以放到一个单独的文件中,然后在命令行运行。
执行: