当前位置:首页 > python > 正文内容

python 装饰器 之打印函数执行时间

root5年前 (2021-12-31)python1790

在实际开发中 遇见很多需要排查函数执行时间定位性能瓶颈点

用装饰器获取函数执行的时间还是比较方便的

import inspect
import time

def timethis(func):
    def wrapper(*args, **kwargs):
        start = time.time()
        func(*args, **kwargs)
        end = time.time()
        print(inspect.getfile(func), func.__name__, end - start)
    return wrapper


装饰器的执行情况

@timethis
def test1(a):
    print("test1开始")
    print(a)
    time.sleep(1)
    print("test1结束")

def test2(a):
    print("test2开始")
    print(a)
    time.sleep(1)
    print("test3结束")


if __name__ == '__main__':
    # 有装饰器的情况下执行
    test1(10)
    
    # 下面执行情况等效于装饰器的执行
    timethis(test2)(10)


扫描二维码推送至手机访问。

版权声明:本文由一叶知秋发布,如需转载请注明出处。

本文链接:https://zhiqiu.top/?id=195

分享给朋友:

相关文章

Python eventlet 模块,Timeout() 控制子程序运行时间

pip install  eventlet #安装依赖包# -*- coding:utf-8 -*- import eventlet import time e...

python 的configparser 读取配置文件遇到%特殊符号

test.ini 配置文件中有mysql的密码,且密码含有“%”这个特殊符号因为%在py是转义符的含义需要对该字符转义即修改  %  为 %%用%对%进行转义...

pip 升级到指定版本,但是py2的pip版本务必在20版本以内包含20版本

python3 -m pip install --user --upgrade pip==9.0.3(换成你想要的版本编号)如果python2的只能升级到20+版本。超过会出现不支持的情况...

cmd启动python交互模式 出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x9a in position 533

这是因为在python交互模式的中输出了中文,且是个输出被记录在.python_history中删除历史记录文件C:\Users\Administrator\.python_history...

获取大文件的MD5值

(, )os.path.(, )logger.()         os.path.(, )logger.()  &...

python csvw格式文件转parquet格式文件

用到的包: pandas    pyarrow    pandas pd df pd.(,,) df.()要求csv文件 要有头行一定要安装pyarro...