Python在不同的位置/类创建时间戳来记录函数块的运行时间

2024-05-18 18:38:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道如何创建基本时间戳:

t1 = time.time()
# program runs runs
t2 = time.time()
dt = t2 - t1

我的问题是,这个程序是一个庞大的群体,它的作品,但它包含了数千行和相互缠绕的类,方法调用,函数。你知道吗

总而言之,这就是我想要达到的目标:

  1. 我想在一节课中间放一个t1
  2. 一些func调用这个类,然后从不同的模块调用另一个类,依此类推
  3. 在其他课程结束时,我想种一个t2
  4. 最后,我想输出一个dt = t2 - t1。你知道吗
  5. 我知道一些关于全局变量的知识,但不确定跨模块是否可行,我的意思是t1可能来自abc.py公司,t2可能是123.py,有可能吗?你知道吗

Tags: 模块方法函数py程序目标time时间
1条回答
网友
1楼 · 发布于 2024-05-18 18:38:05

一个想法是用一个全局变量创建一个模块,这样就不会对名称空间造成太大的污染。你知道吗

这里是我的计时器.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

相关问题 更多 >

    热门问题