Python 中可以使用 memory_profiler 包来分析程序的内存占用情况
memory_profiler 可以分析每行代码的内存使用情况,使用起来非常简单。
安装
1 | $ pip install memory_profiler |
使用
1 | #!/usr/bin/env python |
1 | $ python -m memory_profiler memory_profiler |
结果如图,每一步的内存变化情况都很清楚
Mem usage
为当前总内存Increment
为增加的内存
总结起来使用非常时间
- 方法前加上
@profile
主键 - 使用
python -m memory_profiler
来运行,不过直接用python
运行也可以
通过上面这段代码我们可以发现,del
语句只是将变量删除,并不能减少内存的消耗。
参数使用
precision
显示小数点后的位数
默认显示的内存单位为 MiB
,小数点后显示一位,如果某行代码占用内存比较小,就可能显示不出来,此时可以通过调整小数点后的位数实现。
1 | #!/usr/bin/env python |
stream
将结果输出到流中
每次运行都要打印内存情况,势必会影响程序输出效果,我们可以将结果通过流输出到文件中
1 | #!/usr/bin/env python |
mprof 命令
memory_profiler 本身也提供了命令行 mprof
1 | Usage: mprof <command> <options> <arguments> |
重点说一下 plot
命令,run
命令可以生成 .dat
文件,plot
可以将该文件生成图片,不过需要 matplotlib
包的加持。
1 | $ pip install matplotlib |
结果如下
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章