包装脚本,将记录另一个脚本的执行时间与参数
Wrapper script that would record the execution time of another script with parameters
我有一个包装脚本 wrapper.py
可以计时 benchrun.py
。
假设我 运行 benchrun.py
使用此命令:
python benchrun.py --host {host} -f {testfile} -t {number of threads} -s {mongo shell path}
我应该在运行 benchrun.py
脚本的包装器脚本中放入什么并获得执行时间?
你需要把执行前后的时间都减去,这样你就得到了执行时间;
在封装脚本中:
import time
执行前:
before= time.clock()
执行后:
after = time.clock()
totaltime = after-before
总时间是benchrun.py脚本的执行时间。
您是否正在使用 os.system 呼叫 benchrun.py?如果是这样,只需在开头和return之后设置datetime.now(),然后计算delta。它应该有效。
# 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():
...
首先,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))
我有一个包装脚本 wrapper.py
可以计时 benchrun.py
。
假设我 运行 benchrun.py
使用此命令:
python benchrun.py --host {host} -f {testfile} -t {number of threads} -s {mongo shell path}
我应该在运行 benchrun.py
脚本的包装器脚本中放入什么并获得执行时间?
你需要把执行前后的时间都减去,这样你就得到了执行时间;
在封装脚本中:
import time
执行前:
before= time.clock()
执行后:
after = time.clock()
totaltime = after-before
总时间是benchrun.py脚本的执行时间。
您是否正在使用 os.system 呼叫 benchrun.py?如果是这样,只需在开头和return之后设置datetime.now(),然后计算delta。它应该有效。
# 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():
...
首先,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))