美文网首页
使用matplotlib内存泄漏

使用matplotlib内存泄漏

作者: irene0_0 | 来源:发表于2020-12-30 19:41 被阅读0次

    在用pytest做测试的时候,发现了用例占用了很大内存,使用模块memory_profiler检测代码后,发现在使用fig.savefig()的时候大量内存占用,并且没有释放,由于图比较大,且数量多,在跑了几个用例之后,16G的内存就被用的差不多了......

    解决办法:

    1. 在fig.savefig()后根据需要增加响应方法
      plt.cla() # 清除axes,即当前 figure 中的活动的axes,但其他axes保持不变。
      plt.clf() # 清除当前 figure 的所有axes,但是不关闭这个 window,所以能继续复用于其他的 plot。
      plt.close() # 关闭 window,如果没有指定,则指当前 window。
      plt.close(fig)
      plt.close('all') # 我采用了这个,关闭了所有的

    2. 因为占用内存实在是大,为了及时回收内存,也使用了gc (为了内存在case结束之后,也使用了gc)
      在plt.close('all') 增加了
      gc.collect()

    改善后的结果:

    使用memory_profiler检测内存,用例占用真的降下来了。

    附加 memory_profiler 地址

    https://pypi.org/project/memory-profiler/

    相关文章

      网友评论

          本文标题:使用matplotlib内存泄漏

          本文链接:https://www.haomeiwen.com/subject/jmtkoktx.html