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

开发
第三方库memory_profiler可以帮助我们分析记录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大数据分析
相关推荐

2023-11-10 09:41:44

Python代码

2016-12-02 08:53:18

Python一行代码

2021-02-24 14:30:59

JavaScript语言开发

2024-05-31 14:04:18

2025-02-12 09:55:01

Java代码性能

2020-08-18 13:30:01

Python命令数据分析

2024-09-18 06:10:00

条件表达式判断代码Python

2022-04-09 09:11:33

Python

2020-10-13 17:30:45

Python代码内存

2020-08-19 10:30:25

代码Python多线程

2021-11-02 16:25:41

Python代码技巧

2017-04-13 19:20:18

Python代码并行任务

2021-10-29 10:38:20

代码 PILPython

2020-04-22 13:56:26

python函数编程

2020-09-28 12:34:38

Python代码开发

2020-08-12 14:54:00

Python代码开发

2024-12-30 08:10:00

C++17代码文件

2014-02-12 13:43:50

代码并行任务

2017-04-05 11:10:23

Javascript代码前端

2020-01-10 22:56:56

Python图像处理Linux
点赞
收藏

51CTO技术栈公众号