溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何基于python測(cè)量代碼運(yùn)行時(shí)間

發(fā)布時(shí)間:2020-10-06 15:26:54 來源:腳本之家 閱讀:156 作者:程序員的人生A 欄目:開發(fā)技術(shù)

這篇文章主要介紹了如何基于python測(cè)量代碼運(yùn)行時(shí)間,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Python 社區(qū)有句俗語: “python自己帶著電池” ,別自己寫計(jì)時(shí)框架。 Python3.2具備一個(gè)叫做 timeit 的完美計(jì)時(shí)工具可以測(cè)量python代碼的運(yùn)行時(shí)間。

timeit 模塊:

timeit 模塊定義了接受兩個(gè)參數(shù)的 Timer 類。兩個(gè)參數(shù)都是字符串。 第一個(gè)參數(shù)是你要計(jì)時(shí)的語句或者函數(shù)。 傳遞給 Timer 的第二個(gè)參數(shù)是為第一個(gè)參數(shù)語句構(gòu)建環(huán)境的導(dǎo)入語句。 從內(nèi)部講, timeit 構(gòu)建起一個(gè)獨(dú)立的虛擬環(huán)境, 手工地執(zhí)行建立語句,然后手工地編譯和執(zhí)行被計(jì)時(shí)語句。

一旦有了 Timer 對(duì)象,最簡單的事就是調(diào)用 timeit(),它接受一個(gè)參數(shù)為每個(gè)測(cè)試中調(diào)用被計(jì)時(shí)語句的次數(shù),默認(rèn)為一百萬次;返回所耗費(fèi)的秒數(shù)。

Timer 對(duì)象的另一個(gè)主要方法是 repeat(), 它接受兩個(gè)可選參數(shù)。 第一個(gè)參數(shù)是重復(fù)整個(gè)測(cè)試的次數(shù),第二個(gè)參數(shù)是每個(gè)測(cè)試中調(diào)用被計(jì)時(shí)語句的次數(shù)。 兩個(gè)參數(shù)都是可選的,它們的默認(rèn)值分別是 3 和 1000000。 repeat() 方法返回以秒記錄的每個(gè)測(cè)試循環(huán)的耗時(shí)列表。Python 有一個(gè)方便的 min 函數(shù)可以把輸入的列表返回成最小值,如:
min(t.repeat(3, 1000000))

你可以在命令行使用 timeit 模塊來測(cè)試一個(gè)已存在的 Python 程序,而不需要修改代碼。

具體可參見文檔: http://docs.python.org/library/timeit.html

1、程序代碼

def print_func_time(function):
'''
計(jì)算程序運(yùn)行時(shí)間
:param function:
:return:
'''

@wraps(function)
def func_time(*args, **kwargs):
t0 = time.clock()
result = function(*args, **kwargs)
t1 = time.clock()
print("Total running time: %s s" % (str(t1 - t0)))
return result

return func_time

2、使用print_func_time

@print_func_time
def test():
print(123)
test()

3、控制臺(tái)輸出程序運(yùn)行時(shí)間

123
Total running time: 2.233830763170168e-05 s

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI