python - 使用时间模块测量耗时

标签 python time elapsed

使用 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():

关于python - 使用时间模块测量耗时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620943/

相关文章:

python - 如何在 scikit-learn 中使用具有不同基础估计器的 adaboost?

java - 为什么这个 while 循环不能每秒打印 1,000 次?

python - 为什么在 Python 中创建列表需要更多时间?

android - 比较耗时(例如 : 08:00 am) to current time android

python - RFID唯一序列号转换

python - 如何像在 R 中一样轻松地使用 python 读写 googlesheets?

python-2.7 - 使用 Python 中的请求库测量 HTTP 响应时间。我做对了吗?

java - Java 中测量耗时的最快方法

python - 在python dict中访问多个值

SQL:创建一个包含 24 小时行的表