Python代碼執(zhí)行時(shí)間測(cè)量模塊timeit用法解析
1.timeit模塊
timeit模塊可以用來(lái)測(cè)試一小段python代碼的執(zhí)行速度
class timeit.Timer(stmt = ’pass’,setup = ’pass’,timer=<timer function>)
Timer是測(cè)量小段代碼執(zhí)行速度的類 stmt參數(shù)是要測(cè)試的代碼語(yǔ)句(statment); setup參數(shù)是運(yùn)行代碼時(shí)需要的設(shè)置; timer參數(shù)是一個(gè)定時(shí)器函數(shù),與平臺(tái)有關(guān)(windows,unix,linux,mac)。timeit.timer(number = 10000)
Timer類中測(cè)試語(yǔ)句執(zhí)行速度的對(duì)象方法。number參數(shù)是測(cè)試代碼時(shí)的測(cè)試次數(shù),默認(rèn)為1000000(一百萬(wàn))次。該方法返回執(zhí)行代碼的平均耗時(shí),是一個(gè)float類型的seconds。
2.使用timeit模塊對(duì)python中l(wèi)ist內(nèi)置操作的時(shí)間復(fù)雜度測(cè)算
3.測(cè)算代碼塊:
#下面列出list的幾種常用內(nèi)置方法以及l(fā)ist的幾種構(gòu)建方法#coding:utf-8 #導(dǎo)入timeit模塊 import timeit #t1,以+的方式構(gòu)建列表 ’’’li1 = [1,2] li2 = [23,24] li = li1 + li2 #t2,列表生成器 li = [i for i in range(10000)] #t3,將可迭代對(duì)象(range)直接轉(zhuǎn)換成列表 li = list(range(10000)) #t4,先創(chuàng)建一個(gè)空列表,然后用.append方法添加元素 li = [] for i in range(10000):li.append(i)’’’#下面開(kāi)始測(cè)算 #append方法對(duì)空列表添加元素構(gòu)造列表def t1():li = []for i in range(10000):li.append(i)#+的方法構(gòu)造列表def t2():li = []for i in range(10000):li += [i]#列表生成器def t3():li = [i for i in range(10000)]#轉(zhuǎn)換可迭代對(duì)象為列表def t4():li = list(range(10000)) timer1 = timeit.Timer(’t1()’,’from __main__ import t1’)print(’+:’,timer1.timeit(1000)) timer2 = timeit.Timer(’t2()’,’from __main__ import t2’)print(’append:’,timer2.timeit(1000)) timer3 = timeit.Timer(’t3()’,’from __main__ import t3’)print(’列表生成器:’,timer3.timeit(1000)) timer4 = timeit.Timer(’t4’,’from __main__ import t4’)print(’直接轉(zhuǎn)換可迭代對(duì)象:’,timer4.timeit(1000))
4.運(yùn)行結(jié)果
+: 0.7415732243125414append: 0.7872105163322995列表生成器: 0.3843147415048551直接轉(zhuǎn)換可迭代對(duì)象: 1.3879485965428984e-05[Finished in 2.0s]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JavaScript Reduce使用詳解2. 簡(jiǎn)述JAVA同步、異步、阻塞和非阻塞之間的區(qū)別3. Python TestSuite生成測(cè)試報(bào)告過(guò)程解析4. 詳解JAVA 強(qiáng)引用5. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法6. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法7. 使用Python3 poplib模塊刪除服務(wù)器多天前的郵件實(shí)現(xiàn)代碼8. 解決AJAX返回狀態(tài)200沒(méi)有調(diào)用success的問(wèn)題9. 深入了解JAVA 軟引用10. SpringBoot集成mqtt的多模塊項(xiàng)目配置詳解
