用line_profiler性能调试工具检测每一行python代码的运行时间

window安装

https://www.lfd.uci.edu/~gohlke/pythonlibs/#line_profiler

pip install line_profiler.whl
pip install wrapt

wrapt 是一个功能非常完善的包,用于实现各种你想到或者你没想到的装饰器。使用wrapt实现的装饰器你不需要担心之前inspect中遇到的所有问题,因为它都帮你处理了,甚至inspect.getsource(func)也准确无误。

装饰器实现

utils.py

import wrapt
from line_profiler import LineProfiler
lp = LineProfiler()

def lp_wrapper():
    """
    显示函数调用时间
    """
    @wrapt.decorator
    def wrapper(func, instance, args, kwargs):
        global lp
        lp_wrapper = lp(func)
        res = lp_wrapper(*args, **kwargs)
        lp.print_stats()
        return res

    return wrapper

使用


# 引入刚刚写的装饰器
from .utils import lp_wrapper

# 在函数前加入一行装饰器代码
@lp_wrapper()
def func():
    """
    要查看的函数例子
    """
    a = sum([1, 2, 3])
    b = sum([1, 2, 3])
    return sum([a, b])

转载于:https://my.oschina.net/readerror/blog/2054612

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值