为了账号安全,请及时绑定邮箱和手机立即绑定

包装脚本,将记录另一个脚本的执行时间与参数

包装脚本,将记录另一个脚本的执行时间与参数

神不在的星期二 2023-04-25 16:48:58
我有一个包装器脚本wrapper.py,可以为benchrun.py.假设我benchrun.py使用此命令运行:python benchrun.py --host {host} -f {testfile} -t {number of threads} -s {mongo shell path}我应该在包装器脚本中放入什么来运行benchrun.py脚本并获取执行时间?
查看完整描述

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))


查看完整回答
反对 回复 2023-04-25
?
幕布斯6054654

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():

    ...


查看完整回答
反对 回复 2023-04-25
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

您需要在执行前后计算时间并减少它们之间的时间,以便获得执行时间;

在包装器脚本中:

import time

执行前:

before= time.clock()

执行后:

after = time.clock()
totaltime = after-before

totaltime 是 benchrun.py 脚本的执行时间。


查看完整回答
反对 回复 2023-04-25
?
函数式编程

TA贡献1807条经验 获得超9个赞

你在使用 os.system 来调用 benchrun.py 吗?如果是这样,只需在开始和返回后设置 datetime.now() ,并计算增量。它应该工作。



查看完整回答
反对 回复 2023-04-25
  • 4 回答
  • 0 关注
  • 126 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信