使用时间模块测量经过的时间

2024-01-11

使用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 = {}

Usage:

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用时间模块测量经过的时间 的相关文章

随机推荐

  • 如何删除超过 (n) 天的文件,但保留 (n) 个文件,无论其年龄如何?

    我用 PHP 编写了以下内容 但我想知道是否有一种优雅的方法可以在 Linux shell 脚本中执行此操作 基本上删除超过 n 天的文件 但保留 n 最新的文件 无论其年龄如何 PHP foreach glob backup db as
  • MySQL - SELECT + JOIN + ORDER BY 性能

    我有两个表 我需要从两个表中选择一些连接的数据 SELECT f FROM file data f JOIN subscriptions s ON f uid s elementid WHERE s uid 119762 AND f pri
  • FFMPEG 套件 iOS 异步调用未异步运行

    当我打电话给executeAsync的方法FFmpegKit我期望异步行为 但代码会运行但从不等待FFmpegKit executeAsync运行 因此 程序输出来自print FFmpeg process exited with stat
  • 将值添加到数据框的所有行

    我有两个熊猫数据框df1 长度为 2 和df2 长度约 30 行 df1 的索引值始终不同 并且不会出现在 df2 中 我想添加来自的列的平均值df1到相应的列df2 示例 将 0 6 添加到 c1 的所有行 将 0 9 添加到 c2 的所
  • 获取 Data.ByteString.Builder 的长度

    我有一个函数tabulate它接受一个对象列表以及将这些对象的字段转换为函数的列表Builders 它返回一个Builder代表一个格式良好的表格 例如 tabulate a gt Builder gt a gt Builder tabul
  • Android Studio 将 2 个 .aar 合二为一

    我有一个 Android Studio 库项目 它依赖于另一个库项目 顶级项目依赖于第二个库项目的代码和资源 当在客户端应用程序中仅使用顶级库项目 aar 时 找不到第二个库项目中的资源 那么在这种情况下我们是否必须始终使用 2 个 aar
  • 使用 PDO 与 Postgresql 连接速度慢

    我正在使用 php7 4 fpm 连接到 PostgreSQL 12 3 Ubuntu 12 3 1 pgdg18 04 1 当我使用 pgadmin4 时 查询在 129 毫秒内执行 结果立即显示在屏幕上 在 php 上执行相同的查询大约
  • Java android AsyncHttpClient 如何设置标头“Accept”“application/xml”或“application/json”

    我不知道如何为 applicatjon json 设置标头 Accept 现在我来自服务器的响应是 xml 但我想要一个 json 当我设置标头时 服务器应该向我发送一个 xml 这是我的代码 final JSONObject reques
  • WPF:动态视图/内容

    我是 WPF 的初学者 所以我问这个 假设我有一个窗口 在窗口内我想要有一些类似容器的东西 可以只是边框 也可以是面板 用 winform 术语来说 容器的内容绑定到所选选项 例如 按钮 因此 例如 当用户选择选项 1 时 容器显示图表 当
  • 做像 Twitter、Hash-Bang #! 这样的链接网址[重复]

    这个问题在这里已经有答案了 可能的重复 Facebook 和新 Twitter URL 中的 shebang hashbang 有何用途 https stackoverflow com questions 3009380 whats the
  • Django表单和html表单有什么区别

    我正在基于 html 表单提交方法来处理我的 django 项目 但最近 我开始知道存在 django 形式 请让我知道它们之间有什么区别 在 Django 中编写表单最终会生成 HTML 表单 Django 表单可以绑定到一个模型 然后该
  • mysql 中的平均时间差

    在我的sql中是否有一个函数可以查找标准时间格式的平均时间差 您可以使用timestampdiff http dev mysql com doc refman 5 1 en date and time functions html func
  • 变量声明与定义

    我正在阅读一些关于外部人员的信息 现在作者开始提到变量的声明和定义 通过声明 他提到了以下情况 如果声明了一个变量 没有为其分配空间 现在这让我感到困惑 因为我认为MOST时代的 当我在 C 中使用变量时 我实际上是在定义和声明它们 对吗
  • 如何使用 Firebase 创建好友列表? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在网上研究如何使用 firebase 创建朋友列表系统 到目前为止 我运气不佳 获得的资源并不完全是我想要的 该应用程序的前提是
  • 无法从 LinkedIn 应用程序获取访问令牌。它在 onActivityResult 中返回 null

    我正在使用 linkedIn android sdk 登录应用程序 但无法获取访问令牌 void startAutheniticate LISessionManager getInstance getApplicationContext i
  • 使用 64 位 llvm-gcc 构建 32 位

    我有 64 位版本的 llvm gcc 但我希望能够构建 32 位和 64 位二进制文 件 有这个标志吗 我尝试传递 m32 适用于常规 gcc 但收到如下错误消息 jay andesite llvm gcc m32 test c o te
  • Angular 9 - 删除 Angular Material Stepper 上的默认图标(创建)

    我在 Angular 中遇到了这个恼人的问题 我通过添加到provides页面的 provide STEPPER GLOBAL OPTIONS useValue displayDefaultIndicatorType false showE
  • Play 商店崩溃报告:android.view.View$DeclaredOnClickListener.onClick 上存在 IllegalStateException

    我的一个应用程序收到了一些 IllegalStateException 的崩溃报告 堆栈跟踪表明它来自 android view View DeclaredOnClickListener onClick view 我在测试或日常使用中从未遇
  • 在保持状态的同时切换片段

    决定重写这个问题 我有三个片段 称为 A B C 每个片段都有一个视图 其中包含一些字段供用户填写 用户应该能够使用菜单在不同的片段之间切换 如果用户在片段 A 中填写信息 然后切换到 C 填写更多信息 然后切换回 A 则用户在 A 中键入
  • 使用时间模块测量经过的时间

    使用python中的Time模块可以测量经过的时间吗 如果是这样 我该怎么做 我需要这样做 以便如果光标在小部件中停留一段时间 就会发生事件 start time time time your code elapsed time time