我知道如何创建基本时间戳:
t1 = time.time()
# program runs runs
t2 = time.time()
dt = t2 - t1
我的问题是,该程序是一个巨大的大块,它的工作原理,但它包含数千行和交互绕组类,方法调用,函数。
总而言之,这就是我想要实现的目标:
dt = t2 - t1
。答案 0 :(得分:0)
一个想法是创建一个带有全局变量的模块,这样就不会对命名空间造成太大污染。
这是mytimer.py:
import time
TIMER = None
def start():
global TIMER
TIMER = time.time()
def stop(msg=None):
global TIMER
msg = msg or "TIMER"
if TIMER:
print('%s -- %s' % (msg, time.time() - TIMER))
else:
print 'ERROR: TIMER is not set'
然后,假设您在module1.py中启动计时器:
import mytimer
def somefun():
mytimer.start()
somefun()
你可以看到在另一个模块中调用mytimer.stop()
时花了多少时间,这里是module2.py:
import mytimer
import module1
mytimer.stop(msg="Timer from module1:")
# restart timer
mytimer.start()
# .. do something here
# and then get timer with specific message
mytimer.stop(msg='Finished at')
这应该导致:
$ python module2.py
Timer from module1 -- 3.81469726562e-06 sec
Finished at -- 9.53674316406e-07 sec