我有一个类,其中包含一个方法T,供另一个类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_process
我已阅读this帖子,并尝试添加timewrapper方法
def timewrapper(args)
return self.run_process(args)
它对我不起作用,因为它提供NameError: global name 'timewrapper' is not defined
。
我的问题是如何使用timeit正确实现方法B?
注意:我不能使用核心python以外的模块
答案 0 :(得分:-1)
你使用的是什么版本的python?在版本3.3 time.clock()
is deprecated中,建议您使用perf_counter()
或process_time()
。这可能导致不准确。