1. 程式人生 > >python測量程式碼執行時間方法

python測量程式碼執行時間方法

Python 社群有句俗語: “python自己帶著電池” ,別自己寫計時框架。 Python3.2具備一個叫做 timeit 的完美計時工具可以測量python程式碼的執行時間。

timeit 模組

  • timeit 模組定義了接受兩個引數的 Timer 類。兩個引數都是字串。 第一個引數是你要計時的語句或者函式。 傳遞給 Timer 的第二個引數是為第一個引數語句構建環境的匯入語句。 從內部講, timeit 構建起一個獨立的虛擬環境, 手工地執行建立語句,然後手工地編譯和執行被計時語句。
  • 一旦有了 Timer 物件,最簡單的事就是呼叫 timeit(),它接受一個引數為每個測試中呼叫被計時語句的次數,預設為一百萬次;返回所耗費的秒數。
  • Timer 物件的另一個主要方法是 repeat(), 它接受兩個可選引數。 第一個引數是重複整個測試的次數,第二個引數是每個測試中呼叫被計時語句的次數。 兩個引數都是可選的,它們的預設值分別是 3 和 1000000。 repeat() 方法返回以秒記錄的每個測試迴圈的耗時列表。Python 有一個方便的 min 函式可以把輸入的列表返回成最小值,如:
    min(t.repeat(3, 1000000))
  • 你可以在命令列使用 timeit 模組來測試一個已存在的 Python 程式,而不需要修改程式碼。

1、程式程式碼

def print_func_time(function):
    '''
    計算程式執行時間
    :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、控制檯輸出程式執行時間

123
Total running time: 2.233830763170168e-05 s