4 回答

TA貢獻1775條經驗 獲得超11個贊
一、benchrun.py
import datetime
print ("sleeping now...")
time.sleep(10)
print ("done!")
包裝:
import os
from datetime import datetime, timedelta
before = datetime.now()
os.system("python benchrun.py")
after = datetime.now()
print ("execution time: {0}".format(after - before))

TA貢獻1876條經驗 獲得超7個贊
# timer.py
import time
def timer():
def wrapper(f):
def wrapped_f(*args, **kwargs):
tic = time.perf_counter() # more precise than '.clock'
f(*args, **kwargs)
toc = time.perf_counter()
method_name = f.__name__
print('{}: {:.2f}sec'.format(method_name, toc - tic))
return wrapped_f
return wrapper
# benchrun.py
from timer import timer
@timer
def benchrun():
...

TA貢獻1784條經驗 獲得超2個贊
您需要在執行前后計算時間并減少它們之間的時間,以便獲得執行時間;
在包裝器腳本中:
import time
執行前:
before= time.clock()
執行后:
after = time.clock() totaltime = after-before
totaltime 是 benchrun.py 腳本的執行時間。

TA貢獻1807條經驗 獲得超9個贊
你在使用 os.system 來調用 benchrun.py 嗎?如果是這樣,只需在開始和返回后設置 datetime.now() ,并計算增量。它應該工作。
添加回答
舉報