Pythonの時間測定関数 質問する

Pythonの時間測定関数 質問する

各関数に費やされた時間をテストし、その関数の名前とその時間を印刷するPython関数を作成したいのですが、関数名を印刷するにはどうすればよいですか?また、別の方法がある場合は教えてください。

def measureTime(a):
    start = time.clock() 
    a()
    elapsed = time.clock()
    elapsed = elapsed - start
    print "Time spent in (function name) is: ", elapsed

ベストアンサー1

まず第一に、私はプロファイラーまたは少なくとも使用する時間

ただし、厳密に学習目的で独自のタイミング メソッドを記述したい場合は、デコレータの使用を開始できる場所がここにあります。

Python 2:

def timing(f):
    def wrap(*args):
        time1 = time.time()
        ret = f(*args)
        time2 = time.time()
        print '%s function took %0.3f ms' % (f.func_name, (time2-time1)*1000.0)
        return ret
    return wrap

使い方は非常に簡単で、@timing デコレータを使用するだけです。

@timing
def do_work():
  #code

Python3:

def timing(f):
    def wrap(*args, **kwargs):
        time1 = time.time()
        ret = f(*args, **kwargs)
        time2 = time.time()
        print('{:s} function took {:.3f} ms'.format(f.__name__, (time2-time1)*1000.0))

        return ret
    return wrap

f.func_name関数名を文字列として取得するために呼び出していることに注意してください(Python 2 の場合)、またはf.__name__Python 3 の場合です。

おすすめ記事