Скрипт-оболочка, который будет записывать время выполнения другого скрипта с параметрами - PullRequest
0 голосов
/ 04 августа 2020

У меня есть сценарий-оболочка wrapper.py, который будет определять время для полного выполнения benchrun.py

скажем, я запускаю benchrun.py с помощью этой команды:

python benchrun.py --host {host} -f {testfile} -t {количество потоков} -s {mon go shell path}

что я должен вставить сценарий оболочки для запуска сценария benchrun.py и получить время выполнения?

Ответы [ 4 ]

0 голосов
/ 05 августа 2020

Сначала 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))
0 голосов
/ 04 августа 2020

Используете ли вы os.system для вызова benchrun.py? Если это так, просто установите datetime.now () в начале и после возврата и вычислите дельту. Должно сработать.

0 голосов
/ 04 августа 2020
# 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():
    ...
0 голосов
/ 04 августа 2020

Вам нужно взять время до и после выполнения и уменьшить между ними, чтобы вы получили время выполнения;

В сценарии оболочки:

import time

Перед выполнением:

before= time.clock()

После выполнения:

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

Общее время - это время выполнения benchrun.py скрипт.

...