1. timeit.timeit(stmt=‘pass’, setup=‘pass’, timer=<default timer>, number=default_number) timeit() 函數(shù)有四個參數(shù),每個參數(shù)都是關(guān)鍵字參數(shù),都有默認(rèn)值。 stmt:傳入需要測試時間的代碼,可以直接傳入代碼表達(dá)式或單個變量,也可以傳入函數(shù)。傳入函數(shù)時要在函數(shù)名后面加上小括號,讓函數(shù)執(zhí)行,如 stmt = ‘func()’ 。 setup:傳入 stmt 的運行環(huán)境,如 stmt 中使用到的參數(shù)、變量,要導(dǎo)入的模塊等,如 setup = ’from __main__ import func’。可以寫一行語句,也可以寫多行語句,寫多行語句時用分號隔開。 如果 stmt 和參數(shù) setup 參數(shù)不傳值,那么就失去了測試的意義,所以這兩個參數(shù)是必要的。 timer: timer參數(shù)是當(dāng)前操作系統(tǒng)的基本時間單位,默認(rèn)會根據(jù)當(dāng)前運行環(huán)境的操作系統(tǒng)自動獲取(源碼中已經(jīng)定義),保持默認(rèn)即可。 number:要測試的代碼的運行次數(shù),默認(rèn)1000000(一百萬)次,對于耗時的代碼,運行太多次會花很多時間,可以自己修改運行次數(shù)。
2. timeit.repeat(stmt='pass', setup='pass', timer=default_timer, repeat=default_repeat, number=default_number) repeat()函數(shù)有五個參數(shù),每個參數(shù)都是關(guān)鍵字參數(shù),都有默認(rèn)值。參數(shù)含義與timer()相同 repeat:表示測試要重復(fù)幾次,可以理解為將相同參數(shù)的 timeit() 函數(shù)重復(fù)執(zhí)行。最終的結(jié)果構(gòu)成一個列表返回,repeat 默認(rèn)為3次。
3. class timeit.Timer(stmt=‘pass’, setup=‘pass’, timer=<timer function>) 計算小段代碼執(zhí)行速度的類,構(gòu)造函數(shù)需要的參數(shù)有stmt,setup,timer。 前兩個參數(shù)的默認(rèn)值都是pass,timer默認(rèn)會根據(jù)當(dāng)前運行環(huán)境的操作系統(tǒng)自動獲取;前兩個參數(shù)都可以包含多個語句,多個語句間使用分號;或新行隔開
import timeitdef t1(): li = [i for i in range(100000)]def t2(): li = [] for i in range(100000): li += [i]def t3(): li = [] for i in range(100000): li.append(i)def t4(): li = [] list(range(100000))def t5(): li = [] for i in range(100000): li.extend([i])def t6(): li = [] for i in range(100000): li.insert(0,i)# 方式1:timeit.timeit()# list_t1 = timeit.timeit(’t1()’,’from __main__ import t1’,number=1)# print('i for i in range(100000): %s' %(list_t1))# 方式2:timeit.repeat()# list_t2 = timeit.repeat(’t2()’,’from __main__ import t2’,repeat=1,number=1)# print('li += i: %s' %(str(list_t2)))# 方式3:timeit.Timer# timer3 = timeit.Timer(’t3()’,’from __main__ import t3’)# print('li.append(i): %s' %(timer3.timeit(number=1)))# 直接傳入字符串對象# list_l4 = timeit.timeit(’li = [i for i in range(1000)]’,number=1)# print(str(list_l4))# 傳入多個函數(shù)對象(;或空行分隔)list_l5 = timeit.repeat(’t4();t5();t6()’,’from __main__ import t4;from __main__ import t5;from __main__ import t6’,repeat=1,number=1)print(str(list_l5))
以上就是python使用timeit統(tǒng)計運行時間模塊的詳細(xì)內(nèi)容,更多關(guān)于python使用timeit的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!