python内置类型性能分析---timeit

python内置类型性能分析
timeit模块
timeit模块可以用来测试一小段python代码的执行速度
class timeit.Timer(stmt='pass',setup='pass',timer=<timer function>)
    Timer是测量小段代码执行速度的类
    stmt参数是要测试的代码语句(startment),必须是字符串
    setup参数是运行代码时需要的设置,必须是字符串
    timer参数是一个定时器函数,与平台有关
timeit.Timer.timeit(number=1000000)
Timer类中测试语句执行速度的对象方法。number参数是测试代码时测试次数,默认1000000次,
方法返回执行代码的平均耗时,一个float类型的秒数。
from timeit import Timer
# li1 = [1,2]
# li2 = [23,5]
# li = li1 + li2
# li = [i for i in range(10000)]
# li = list(range(10000))
def test1():
    li = []
    for i in range(10000):
        li.append(i)
def test2():
    li = []
    for i in range(10000):
        li += [i]
def test3():
    li = [i for i in range(10000)]
def test4():
    li = list(range(10000))
def test5():
    li =  []
    for i in range(1000):
        li.extend([i])
def test6():
    li =  []
    for i in range(1000):
        li.insert(0,i)
timer1 = Timer('test1()','from __main__ import test1')
print('append:',timer1.timeit(1000))
timer2 = Timer('test2()','from __main__ import test2')
print('+:',timer2.timeit(1000))
timer3 = Timer('test3()','from __main__ import test3')
print('[i for i in range]:',timer1.timeit(1000))
timer4 = Timer('test4()','from __main__ import test4')
print('list(range()):',timer4.timeit(1000))
timer5 = Timer('test5()','from __main__ import test5')
print('extend:',timer5.timeit(1000))
timer6 = Timer('test6()','from __main__ import test6')
print('insert:',timer6.timeit(1000))

index[] --- O(1)
pop() --- O(1)
pop(i) --- O(n)
append --- O(1)
insert(i,item) --- O(n)
dict
copy() --- O(n)

 

posted @ 2018-06-24 09:33  liang哥哥  阅读(140)  评论(0)    收藏  举报