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,我可以得到一个结果,但我认为与 timeit 给出的结果相比,它的准确度较低。

但是,使用方法 B,timeit 将产生 NameError 因为它无法识别 self.run_process

我已经阅读了这篇文章,并尝试添加 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.3 版time.clock()中已弃用,建议您使用perf_counter()or process_time()。这可能会导致不准确。

于 2014-06-09T18:38:19.880 回答