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 timeit # timeit.Timer 是测试小段代码执行速度的类
# class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)
# stms参数是要测试的代码语句, setup是运行代码是需要的设置 timert是一个定时器,与平台有关
# timeit.Timer.timeit(number=1000000)
# Timer类中测试语句执行速度的对象方法。number参数是测试代码时的测试次数,
# 默认为1000000次。方法返回执行代码的平均耗时,一个float类型的秒数。
def t1():
li = []
for i in range(10000):
li.append(i)
def t2():
li = []
for i in range(10000):
li = li+[i]
def t3():
li = list(range(10000))
def t4():
li = [i for i in range(10000)]
def t5():
li = []
for i in range(10000):
li.insert(0,i)
timer1 = timeit.Timer(stmt="t1()",setup="from __main__ import t1")
timer2 =timeit.Timer(stmt="t2()",setup="from __main__ import t2")
timer3 =timeit.Timer(stmt="t3()",setup="from __main__ import t3")
timer4 =timeit.Timer(stmt="t4()",setup="from __main__ import t4")
timer5 =timeit.Timer(stmt="t5()",setup="from __main__ import t5")
print("append:%f" %timer1.timeit(number=100))
print("li+[i]:%f" %timer2.timeit(number=100))
print("list(range(100)):%f" %timer3.timeit(number=100))
print("for i in range(100):%f" %timer4.timeit(number=100))
print("li.insert(0,i):%f" %timer5.timeit(number=100))
# 列表中时间的推算, append 比 insert 快