一行代码搞定 Python 逐行内存消耗分析
Posted AI科技大本营
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一行代码搞定 Python 逐行内存消耗分析相关的知识,希望对你有一定的参考价值。
作者 | 费弗里
来源 | 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
里执行的终端命令):
其中Line #
列记录了分析的各行代码具体行位置,Mem usage
列记录了当程序执行到该行时,当前进程占用内存的量,Increment
记录了当前行相比上一行内存消耗的变化量,Occurrences
记录了当前行的执行次数(循环、列表推导等代码行会记作多次),Line Contents
列则记录了具体对应的行代码。
通过这样细致的内存分析结果,我们就能有的放矢地优化我们的代码啦~
本期分享结束,咱们下回见~👋
往
期
回
顾
资讯
技术
技术
资讯
分享
点收藏
点点赞
点在看
以上是关于一行代码搞定 Python 逐行内存消耗分析的主要内容,如果未能解决你的问题,请参考以下文章
逐行读取文件数据,分析每一行数据与目标字符串的相似度,Python