別のクラス methodM で使用される methodT を含むクラスがあり、methodT の実行時間を計測したいと考えています。
これが私が試したことです
Class MyClass(threading.Thread):
def __init__():
threading.Thread.__init__(self)
def run_porcess(self, args)
# start a subprocess and print output
def run(self):
# ==========================================
# method A:
# ==========================================
start_time = time.clock()
self.run_process('args')
elapsed = time.clock() - start_time
print(elapsed)
#===========================================
# method B:
#===========================================
timeit.timeit('self.run_process("args")')
Aの方法でも結果は出ますが、今回の結果に比べると精度は落ちていると思います。
ただし、メソッド B では、timeit は self.run_process を認識しないため、NameError を生成します。
この投稿を読んで、timewrapper メソッドを追加してみました
def timewrapper(args)
return self.run_process(args)
を与えるので、私にはうまくいきませんNameError: global name 'timewrapper' is not defined
。
私の質問は、timeit を使用してメソッド B を正しく実装するにはどうすればよいですか?
注: コア python 以外のモジュールは使用できません