一行代码搞定 Python 逐行内存消耗分析

402c895daa1012d683588194babfb8ce.gif

作者 | 费弗里

来源 | Python大数据分析

我们即将学习的是:一行代码分析Python代码行级别内存消耗

很多情况下,我们需要对已经写好的Python程序的内存消耗进行优化,但是一段代码在运行过程中的内存消耗是动态变化的,这种时候就可以用到memory_profiler这个第三方库,它可以帮助我们分析记录Python脚本中,执行到每一行时,内存的消耗及波动变化情况。

memory_profiler的使用方法超级简单,使用pip install memory_profiler完成安装后,只需要从memory_profiler导入profile并作为要分析的目标函数的装饰器即可,譬如下面这个例子:

demo.py

import numpy as np
from memory_profiler import profile

@profile
def demo():
    a = np.random.rand(10000000)
    b = np.random.rand(10000000)
    
    a_ = a[a < b]
    b_ = b[a < b]
    
    del a, b

    return a_, b_


if __name__ == '__main__':
    demo()

接着在终端执行python demo.py,稍事等待后,就会看到打印出的分析结果报告(这里我是在jupyter lab里执行的终端命令):

7e795f8be0c682d3341a963d31e5599f.png

其中Line #列记录了分析的各行代码具体行位置,Mem usage列记录了当程序执行到该行时,当前进程占用内存的量,Increment记录了当前行相比上一行内存消耗的变化量,Occurrences记录了当前行的执行次数(循环、列表推导等代码行会记作多次),Line Contents列则记录了具体对应的行代码。

通过这样细致的内存分析结果,我们就能有的放矢地优化我们的代码啦~


本期分享结束,咱们下回见~👋

7466e17eb471acdaefa10c78e88dea51.gif

f933c70fef08918fba6ae39a0c3cc0d3.png

资讯

Meta开发AI语音助手,助力元宇宙

技术

Pandas重复数据处理大全

技术

5个短小精悍的Python趣味脚本

资讯

M2芯片终于要来了?全线换新

f0068559bf2f4c1bcf16b4a61c2e6924.png

分享

b75bef9b1fb1ba3d9c3c15e950cc2b28.png

点收藏

0407f1a2f9df75c0926ee47f8e83fb58.png

点点赞

8f567c25f6330dbe1d1d50cb2cc55b62.png

点在看

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值