timeit
- 通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:timeit
# 导入timeit.timeit
from timeit import timeit
# 执行1000000次a=1的时间:
timeit('a=1')
# a=1的执行时间,执行1次(number默认值为1000000):
timeit('a=1', number=1)
# 一个列表生成器的执行时间,执行1次:
timeit('[i for i in range(10000)]', number=1)
# 一个列表生成器的执行时间,执行10000次:
timeit('[i for i in range(10000)]', number=10000)
测试一个函数的执行时间:
from timeit import timeit
def test():
a = 1
print(s)
# timeit(函数名_字符串,运行环境_字符串,number=运行次数)
time = timeit('test()', 'from __main__ import test', number=1000)
print(time)
repeat:
- 由于硬件与环境的不同,程序不可能每次都是最高效的执行。所以一般都会进行多次试验,取最少的执行时间。
- repeat和timeit用法相似,多了一个repeat参数,表示重复测试的次数(默认值为3),返回值为列表。
from timeit import repeat
def test_1():
root_geometry = '%d%s%d%s%d%s%d' % (1, '*', 1, '+', 1, '+', 1)
def test_2():
root_geometry = str(int(1)) + '*' + str(int(1)) + '+' + str(int(1)) + '+' + str(int(1))
if __name__ == '__main__':
time_1 = repeat('test_1()', 'from __main__ import test_1', number=100, repeat=5)
time_2 = repeat('test_2()', 'from __main__ import test_2', number=100, repeat=5)
print(time_1)
print(min(time_1))
print(time_2)
print(min(time_2))