当前位置: 首页 > 面试题库 >

使用“时间”模块测量经过时间

宰宣
2023-03-14
问题内容

使用python中的Time模块,可以测量经过的时间吗?如果是这样,我该怎么做?

我需要这样做,以便如果光标在小部件中已存在一定时间,则会发生事件。


问题答案:
start_time = time.time()
# your code
elapsed_time = time.time() - start_time

您还可以编写简单的装饰器来简化各种功能的执行时间的度量:

import time
from functools import wraps

PROF_DATA = {}

def profile(fn):
    @wraps(fn)
    def with_profiling(*args, **kwargs):
        start_time = time.time()

        ret = fn(*args, **kwargs)

        elapsed_time = time.time() - start_time

        if fn.__name__ not in PROF_DATA:
            PROF_DATA[fn.__name__] = [0, []]
        PROF_DATA[fn.__name__][0] += 1
        PROF_DATA[fn.__name__][1].append(elapsed_time)

        return ret

    return with_profiling

def print_prof_data():
    for fname, data in PROF_DATA.items():
        max_time = max(data[1])
        avg_time = sum(data[1]) / len(data[1])
        print "Function %s called %d times. " % (fname, data[0]),
        print 'Execution time max: %.3f, average: %.3f' % (max_time, avg_time)

def clear_prof_data():
    global PROF_DATA
    PROF_DATA = {}

用法:

@profile
def your_function(...):
    ...

您可以同时分析多个功能。然后要打印测量值,只需调用print_prof_data():



 类似资料:
  • 问题内容: 我有一个10和20问题游戏。我需要计算用户完成游戏需要花费多少时间。 我用它来停止计数器: 现在我需要两件事: 一种如何计算经过时间并将其存储在变量中的方法 我需要最终值是两倍,例如最终得分是:15.49秒。 问题答案: 游戏开始时: 游戏结束时:

  • 问题内容: 我们如何衡量在Swift中运行一个函数所花费的时间?我试图以这种方式显示经过的时间:“经过的时间为.05秒”。看到在Java中,我们可以使用System.nanoTime(),Swift中有可用的等效方法来实现这一点吗? 请看一下示例程序: 问题答案: 这是我编写的用于测量Swift中的Euler问题的Swift函数 从Swift 3开始,Grand Central Dispatch现

  • 问题内容: 有没有一种简单的方法/模块可以 正确 测量python中的经过时间?我知道我可以简单地打电话两次并取差额,但是如果更改系统时间,那将产生错误的结果。当然,这种情况很少发生,但这确实表明我在衡量错误的事情。 考虑到持续时间时,使用它来衡量是难以置信的。您将两个绝对时间测量值的差值反过来由持续时间测量值(由计时器执行)和已知的绝对时间(手动设置或通过ntp设置)构成,而您根本不感兴趣。 因

  • 问题内容: 我想要的是开始在代码中的某个地方开始计时,然后获取经过的时间,以衡量执行少量功能所花费的时间。我认为我使用的timeit模块错了,但是文档对我来说很混乱。 问题答案: 使用代替。前者会自动在你的平台和Python版本上提供最佳时钟:

  • 问题内容: 我想要这样的东西: 同样重要的是,例如,如果startTime为23:00,endTime为1:00,则持续时间为2:00。 为了在Java中完成此操作,应使用哪些类型? 问题答案: 不幸的是,到目前为止发布的十个答案中没有一个是正确的。 如果要测量经过的时间,并且希望它是正确的,则必须使用。你不能使用,除非你不介意结果错误。 的目的是测量经过的时间,目的是测量挂钟时间。你不能将一个用

  • 问题内容: 我是Android编程的新手,所以请您为我的问题提供帮助。我正在尝试以秒/毫秒为单位测量MouseEvent.ACTION_DOWN和MouseEvent.ACTION_UP之间的时间。 我的问题实际上是因为seconds变量没有显示我想要的内容,我什至不知道它的测量结果是否正确,对于上面的示例,持续时间为16545(???!?!?) -3秒。我该怎么做才能在两个MotionEvent