python计算模块运行时间

在python中,计算模块的运行时间是我们开发中经常遇到的问题。那么应该如何更加精准的计算时间呢?

1, timeit模块简介

timeit模块可以用来测试一小段Python代码的执行速度
核心代码1介绍 :

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

Timer是测量小段代码执行速度的类。
stmt参数是要测试的代码语句
setup参数是测试语句的路径

eg: 
timer1 = timeit.Timer("T1()","from __main__ import T1") 

核心代码2介绍:

 timeit.Timer.timeit(number=1000000) 

Timer类中测试语句执行速度的对象方法。
number参数是测试代码时的测试次数,默认为1000000次。可简写为timer1.timeit(1000)
timeit方法返回执行代码的平均耗时,它是一个float类型的秒数。

2, 列表性能测试实践

我在这里引入了timeit

时间模块。timer.timeit函数参数中的number含义的是,运行对应的次数后取其平均值。

import timeit

def T1():
    '''表内置属性'''
    li = []
    for i in range(1000):
        li.append(i)

def T2():
    '''列表拼接'''
    li = []
    for i in range(1000):
        li = li + [i]

def T3():
    '''列表推导式'''
    li = [i for i in range(1000)]

def T4():
    '''属性转换'''
    li = list(range(1000))

if __name__ == "__main__":
    # timer = timeit.Timer('T1()',"from __main__ import T1")
    # print("%s: %f seconds" % ('T1()',timer.timeit(number=1000)))

    test_list = ['T1()','T2()','T3()','T4()']
    for i in test_list:
        timer = timeit.Timer(i,"from __main__ import T1,T2,T3,T4")
        print("%s: %f seconds" % (i,timer.timeit(number=1000)))



猜你喜欢

转载自blog.csdn.net/TFATS/article/details/107818428