第三方库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列则记录了具体对应的行代码。
通过这样细致的内存分析结果,我们就能有的放矢地优化我们的代码啦~
©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经