Python 程序运行时间计时

作者: Python高效编程 | 来源:发表于2019-02-20 21:27 被阅读3次

简单性能分析

Written By Python高效编程

装饰器实现:

@timer 就相当于 timer(waste_some_time) 的简化版本。

装饰器是一种将函数作为参数并进行包装(加强函数功能)的“语法糖”,具有方便、易用、可复用的特点。

其中 wrapper 函数,是 timer 函数的内置函数,可以使用 timer 函数中的局部变量。也就是说,在 wrapper 函数内部,可以直接使用 timer 函数传进来的参数 func。

wrapper(*args, **kwargs)、func(*args, **kwargs) 表示接受任何参数。如果括号中空白的话,传进来的 func 如果有参数的话,Python 解释器会报错。

# 错误写法
def do_twice(func):
    def wrapper():
        func()
        func()
    return wrapper

@do_twice
def waste_some_time(vol):
    ulist = []
    for i in range(vol):
        ulist.append(i)
# TypeError: waste_some_time() missing 1 required positional argument: 'vol'

正确操作如下:

# 微信公众号:Python高效编程
import functools
import time
## 装饰器
def timer(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        begin_time = time.perf_counter()
        value = func(*args, **kwargs)
        end_time = time.perf_counter()
        run_time = end_time - begin_time
        print('{} 共用时:{} s'.format(func.__name__, run_time))
        return value
    return wrapper

@timer
def waste_some_time():
    ulist = []
    for i in range(1000):
        ulist.append(i)
#输出:waste_some_time 共用时:8.039700333029032e-05 s

ipython 与 jupyert notebook

魔法命令:%timeit waste_some_time()

输出: 56.7 µs ± 204 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
https://blog.csdn.net/weixin_43773093/article/details/87824347

相关文章

  • Python 程序运行时间计时

    简单性能分析 Written By Python高效编程 装饰器实现: @timer 就相当于 timer(was...

  • C++ 实现CountDown倒计时程序

    VC++ 实现一个简单的CountDown倒计时程序,时间到,全场比赛结束!运行倒计时程序后,在窗体中会显示倒计时...

  • Python如何运行程序

    Python的运行 Q:什么是Python解释器 A:Python 解释器是运行Python程序的程序 Q:什么是...

  • Python 编译:code对象 与 pyc文件

    运行程序 当在shell中敲入python xx.py运行 Python 程序时,就是激活了 Python 解释器...

  • Python笔记——记录程序运行时间

    记录一个python中的小模块 在python程序中如何记录程序运行的时间呢? 可以借助python中的time模...

  • Flink on yarn运行python程序

    Flink on yarn运行python程序 Flink本地local模式运行python程序 参考官网写了py...

  • 计时器

    1、系统为每个进程维护3个计时器:1)真实计时器: 程序运行的实际时间2)虚拟计时器:用户态消耗的时间3)实用计...

  • CentOS-Supervisor-程序自启动-python程序

    CentOS下python程序的持续运行 使用ssh登录centOS云服务器,python app.py运行的程序...

  • 4、第一个Python程序

    运行程序的两种方式: 交互式运行Python语句 保存源文件运行程序 一、交互式运行Python语句 超级计算器:...

  • pythone 学习知识整理

    python 的多线程、多进程学习总结 基本概念 进程 一个运行的程序称做进程 给函数的执行计时(装饰器实现) 这...

网友评论

    本文标题:Python 程序运行时间计时

    本文链接:https://www.haomeiwen.com/subject/qfmkyqtx.html