本文介紹了python中的計(jì)時(shí)器timeit的使用方法,分享給大家,具體如下:
timeit
通常在一段程序的前后都用上time.time(),然后進(jìn)行相減就可以得到一段程序的運(yùn)行時(shí)間,不過python提供了更強(qiáng)大的計(jì)時(shí)庫:timeit
#導(dǎo)入timeit.timeitfrom 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 timeitdef 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í)行。所以一般都會(huì)進(jìn)行多次試驗(yàn),取最少的執(zhí)行時(shí)間為真正的執(zhí)行時(shí)間。
from timeit import repeatdef 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))以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林站長站。
新聞熱點(diǎn)
疑難解答
圖片精選