思路:程序開始前后各記錄一個時間點,兩個時間點相減即程序運行耗時時間
方法1:普通計算方法
import time import sys import os start_time = time.clock() time.sleep(5) stop_time = time.clock() cost = stop_time - start_time print("%s cost %s second" % (os.path.basename(sys.argv[0]), cost)) # 結果 1.py cost 4.99955353477297 second
方法2:利用裝飾器
import time def time_me(fn): def _wrapper(*args, **kwargs): start = time.clock() fn(*args, **kwargs) print("%s cost %s second" % (fn.__name__, time.clock() - start)) return _wrapper # 這個裝飾器可以在方便地統計函數運行的耗時。用來分析腳本的性能是最好不過了 # 這樣用調用: @time_me def test(x, y): time.sleep(0.1) return x + y @time_me def test2(x): time.sleep(0.2) return x test(1, 2) test2(2) # 輸出: # test cost 0.1001529524 second # test2 cost 0.199968431742 second
方法3:
import time import functools def time_me(info="used"): def _time_me(fn): @functools.wraps(fn) def _wrapper(*args, **kwargs): start = time.clock() fn(*args, **kwargs) print("%s %s %s"%(fn.__name__, info, time.clock() - start), "second") return _wrapper return _time_me @time_me() def test(x, y): time.sleep(0.1) return x + y @time_me("cost") def test2(x): time.sleep(0.2) return x test(1, 2) test2(2) # 結果 # test used 0.09979820245441397 second # test2 cost 0.1999990525936827 second
