python memory usage_Python - memory_profiler 内存分析工具

内存分析工具 Memory Profiler 是基于

安装:pip install -U memory_profiler

1. 逐行内存占用

在代码脚本外使用.

类似于 @profile 装饰要分析的函数;然后,使用特定脚本运行代码.

如:@profile

def my_func():

a = [1] * (10 ** 6)

b = [2] * (2 * 10 ** 7)

del b

return a

if __name__ == '__main__':

my_func()

运行:python -m memory_profiler example.py

输出如:Line # Mem usage Increment Occurences Line Contents

============================================================

3 38.816 MiB 38.816 MiB 1 @profile

4 def my_func():

5 46.492 MiB 7.676 MiB 1 a = [1] * (10 ** 6)

6 199.117 MiB 152.625 MiB 1 b = [2] * (2 * 10 ** 7)

7 46.629 MiB -152.488 MiB 1 del b

8 46.629 MiB 0.000 MiB 1 return a

其中,

第一列表示分析代码的行数;

第二列(Mem usage)表示执行完该行代码后 Python 解释器的内存使用;

第三列(Increment) 表示当前行和最后一行的内存占用差值;

第四列(Line Contents) 打印了待分析的代码.

2. 装饰器(Decorator)

在代码内使用.from memory_profiler import profile

@profile

#@profile(precision=4) 指定小数位.

def my_func():

a = [1] * (10 ** 6)

b = [2] * (2 * 10 ** 7)

del b

return a

运行:python example.py

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值