python中 timeit模块 timeit和repeat的用法

版权声明:转载请说明地址,谢谢! https://blog.csdn.net/larykaiy/article/details/82907024

1、timeit(stmt=‘pass’, setup=‘pass’, timer=, number=1000000)

返回:

返回执行stmt这段代码number遍所用的时间,单位为秒,float型

参数:

stmt:要执行的那段代码

setup:执行代码的准备工作,不计入时间,一般是import之类的

timer:这个在win32下是time.clock(),linux下是time.time(),默认的,不用管

number:要执行stmt多少遍

2、repeat(stmt=‘pass’, setup=‘pass’, timer=, repeat=3, number=1000000)

这个函数比timeit函数多了一个repeat参数而已,表示重复执行timeit这个过程多少遍,返回一个列表,表示执行每遍的时间

当然,为了方便,python还用了一个Timer类,Timer类里面的函数跟上面介绍的两个函数是一样一样的

class timeit.Timer(stmt='pass', setup='pass',timer=<timer function>)
	Timer.timeit(number=1000000)
	Timer.repeat(repeat=3,number=1000000)

就相当于

timeit(stmt=‘pass’, setup=‘pass’, timer=, number=1000000)
= Timer(stmt=‘pass’, setup=‘pass’, timer=).timeit(number=1000000)

repeat(stmt=‘pass’, setup=‘pass’, timer=, repeat=3, number=1000000)
= Timer(stmt=‘pass’, setup=‘pass’, timer=).repeat(repeat=3, number=1000000)

举例说明一下吧:

import timeit
fun = """
sum = []
for i in range(1000):
    sum.append(i)
"""

print(timeit.timeit(stmt="[i for i in range(1000)]", number=100))
print(timeit.timeit(stmt=fun, number=100))
a = timeit.repeat(stmt="[i for i in range(1000)]", repeat=3, number=100)
b = timeit.repeat(stmt=fun, repeat=3, number=100)
print(a)
print(b)

0.008544809866997705
0.02292565195671934
[0.0077223487063220325, 0.009059753886649813, 0.007812022335074116]
[0.02021415692975611, 0.01764894767090866, 0.019282094667272348]

猜你喜欢

转载自blog.csdn.net/larykaiy/article/details/82907024