1

別のクラス 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 以外のモジュールは使用できません

4

1 に答える 1

-1

どのバージョンの python を使用していますか? バージョン 3.3time.clock()では廃止予定perf_counter()であり、またはを使用することをお勧めしますprocess_time()。それは不正確さに寄与する可能性があります。

于 2014-06-09T18:38:19.880 に答える