Python内置性能分析,timeit模块
timeit模块可以用来测试一小段Python代码的执行速度。
class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)
Timer是测量小段代码执行速度的类。
stmt参数是要测试的代码语句(statment);
setup参数是运行代码时需要的设置;
timer参数是一个定时器函数,与平台有关。
timeit.Timer.timeit(number=1000000)
Timer类中测试语句执行速度的对象方法。number参数是测试代码时的测试次数,默认为1000000次。方法返回执行代码的平均耗时,一个float类型的秒数。
下面给个例子。
import timeitdef t1():l = []for i in range(1000):l = l + [i]
def t2():l = []for i in range(10000):l.append(i)def t3():l = [i for i in range(10000)]def t4():l = list(range(10000))timer01 = timeit.Timer("t1()", "from __main__ import t1")
print("+", timer01.timeit(number=1000), ' seconds')timer02 = timeit.Timer("t2()", "from __main__ import t2")
print("append", timer02.timeit(number=1000), ' seconds')timer03 = timeit.Timer("t3()", "from __main__ import t3")
print("comprehension", timer03.timeit(number=1000), ' seconds')timer04 = timeit.Timer("t4()", "from __main__ import t4")
print("list range", timer04.timeit(number=1000), ' seconds')
上面可以自己执行一下代码看一下结果,以及这个模块怎么用的。
大家看完上面的代码的执行时间,有没有想过一个问题,为什么有的有的代码的执行时间快,有的代码执行时间短呢?其实这里是想引入数据结构的概念,大家可以看下一章内容。