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

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

root2年前 (2021-12-31)python630

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

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

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 os 模块文件常用操作

123456import os #回去当前文件路径os.path.realpath(__file__)#获取文件是否存在os.path.exists(filepath)#获取文件大小os.path.getsize(fil...

python跟pip不是同一个版本的坑

python执行默认是Python2.7但是pip默认确实pip3的用pip install 安装包只会安装到python3环境里面指回pip vim /usr/local/bin/pip把 第一行的#!/usr/bin...

python2 安装mysqldb的血泪

在安装mysqlDB的时候包名不是mysqlDB,同时python2的mysqldb感觉不是很好用,可以试试pymysql下载安装mysql 源wget http://repo.mysql.com/mysql57-community-rel...

python 多进程

from multiprocessing import Pool def test(x,y):     return x+y # ...

fnmatch 模块判断路径是否符合要求,支持通配符

from fnmatch import fnmatchyour_path = ""your_rule = ""print(fnmatch('EqualsAlwaysTrue.java'...

python 环境变量 conda 包管理 virtualenv 工具

conda 环境conda -h 查看帮助conda env list 查看所有虚拟环境deactivate 退出虚拟环境activate  环境名  进入虚拟环境virtualenv  环境workon&nb...