Python 执行期间的类方法性能测试

Python 执行期间的类方法性能测试,python,timeit,Python,Timeit,我有一个类,它包含一个methodT供另一个类methodM使用,我想计算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):

我有一个类,它包含一个methodT供另一个类methodM使用,我想计算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\u进程

我读过这篇文章,并尝试添加timewrapper方法

def timewrapper(args)                       
     return self.run_process(args)
它不适合我,因为它给出了一个
名称错误:没有定义全局名称“timewrapper”

我的问题是如何使用timeit正确实现方法B


注意:我不能使用核心python以外的模块

您使用的python版本是什么?在3.3版中,建议您使用
perf_counter()
process_time()
。这可能会导致不准确。

我使用的是2.7,它没有性能计数器或处理时间。另外,我更喜欢使用timeit