0

現在、以下のコードを使用して、開始時刻と終了時刻を手動で使用するルーチン/関数の経過時間を見つけています。

しかし、クエリを実行したときのように、関数全体が自動的に返されるようにする必要があります。関数を実行したい場合、各関数はその経過時間で私を返す必要があります。時間。

ここに私のコードがありますが、これには絶対に満足できません。ハイエンドのプロフェッショナルなコード行が必要です。pls の助けが必要です。ありがとう。

def ElaspedTime(stime,etime):
    from datetime import timedelta
    timediff = timedelta(seconds=etime - stime)
    return timediff

def STime():
    return time.monotonic()

def ETime():
    return time.monotonic()

#start_time = time.monotonic()

##call functions here

#end_time = time.monotonic()

#print( ElaspedTime(start_time,end_time))
4

2 に答える 2

0

次のようにデコレータを記述します (log.debug を print ... に置き換えます):

from functools import wraps
def with_stopwatch(f):
    @wraps(f)
    def wrapped(*args, **kw):
        tstart = time()
        result = f(*args, **kw)
        tend = time()
        log.debug('>>> func:%r took: %2.4f sec' % (f.__name__, tend - tstart))
        return result
    return wrapped

@with_stopwatch
def function()
    ...
于 2017-06-13T15:29:10.500 に答える