本文介紹了python中的計(jì)時(shí)器timeit的使用方法,分享給大家,具體如下:
timeit
通常在一段程序的前后都用上time.time(),然后進(jìn)行相減就可以得到一段程序的運(yùn)行時(shí)間,不過python提供了更強(qiáng)大的計(jì)時(shí)庫:timeit
#導(dǎo)入timeit.timeit from timeit import timeit #看執(zhí)行1000000次x=1的時(shí)間: timeit('x=1') #看x=1的執(zhí)行時(shí)間,執(zhí)行1次(number可以省略,默認(rèn)值為1000000): timeit('x=1', number=1) #看一個(gè)列表生成器的執(zhí)行時(shí)間,執(zhí)行1次: timeit('[i for i in range(10000)]', number=1) #看一個(gè)列表生成器的執(zhí)行時(shí)間,執(zhí)行10000次: timeit('[i for i in range(100) if i%2==0]', number=10000)
測試一個(gè)函數(shù)的執(zhí)行時(shí)間:
from timeit import timeit def func(): s = 0 for i in range(1000): s += i print(s) # timeit(函數(shù)名_字符串,運(yùn)行環(huán)境_字符串,number=運(yùn)行次數(shù)) t = timeit('func()', 'from __main__ import func', number=1000) print(t)
此程序測試函數(shù)運(yùn)行1000次的執(zhí)行時(shí)間
repeat:
由于電腦永遠(yuǎn)都有其他程序也在占用著資源,你的程序不可能最高效的執(zhí)行。所以一般都會進(jìn)行多次試驗(yàn),取最少的執(zhí)行時(shí)間為真正的執(zhí)行時(shí)間。
from timeit import repeat def func(): s = 0 for i in range(1000): s += i #repeat和timeit用法相似,多了一個(gè)repeat參數(shù),表示重復(fù)測試的次數(shù)(可以不寫,默認(rèn)值為3.),返回值為一個(gè)時(shí)間的列表。 t = repeat('func()', 'from __main__ import func', number=100, repeat=5) print(t) print(min(t))
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com