1、timeit模块
- 可以用来测试某一段代码的执行速度
- timeit.Timer(stmt=’pass’, setup=’pass’, timer=
) 类Timer相关参数:
- stmt:要测试的代码块,可以是一个函数的调用 ‘ts1()’
- setup:运行代码是需要的设置,比如 ‘from main import ts1’ 表示从当前模块中导入ts1
- timer:定时器函数,与平台有关
- 举例:t1=Timer(‘ts1()’,’from main import ts1’)
timeit.Timer().timeit(number=1000000) timeit是类中测试代码块执行速度的方法,参数number为测试次数,默认100万次,结果返回平均耗时,单位秒。
2、对list的几种创建方法进行测试
from timeit import Timerdef ts1():l=[]for i in range(1000):l+=[i]def ts2():l=[]for i in range(1000):l.append(i)def ts3():l=[]for i in range(1000):l.insert(0,i) #头部插入#l.insert(len(l),i) #尾插入def ts4():l=[i for i in range(1000)]def ts5():l=list(range(1000))t1=Timer('ts1()','from __main__ import ts1')print('add',t1.timeit(number=1000))t2=Timer('ts2()','from __main__ import ts2')print('append',t2.timeit(number=1000))t3=Timer('ts3()','from __main__ import ts3')print('insert',t3.timeit(number=1000))t4=Timer('ts4()','from __main__ import ts4')print('推导式',t4.timeit(number=1000))t5=Timer('ts5()','from __main__ import ts5')print('range',t5.timeit(number=1000))
执行结果
add 0.0903901append 0.08012440000000001insert 0.3523162推导式 0.0374466range 0.014912700000000001
从结果可见,创建list时,list(range(n))是最快的,而insert()是最慢的。
