创建matplotlib图形后如何释放内存
我将一些matlpotlib函数集成到了一些django-celery任务中。
每次调用任务时,都会将更多RAM专用于python。不久之后,python占用了所有RAM。
问题: 如何释放此内存?
更新2-第二种解决方案:
我问过类似的问题,特别是有关内存锁定matplotlib错误的时候,但是我有一个很好的回答这个问题.clf()
,.close()
以及gc.collect()
如果使用多进程运行在单独的进程中绘图功能,其内存会自动释放不需要一旦过程结束。
更新-解决方案:
这些帖子建议我可以使用以下命令释放matplotlib对象使用的内存:
.clf()
:Matplotlib循环绘制时内存不足
.close()
:Python
matplotlib:指定图形大小时未释放内存
import gc
gc.collect()
这是我用来测试解决方案的示例:
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from pylab import import figure, savefig
import numpy as np
import gc
a = np.arange(1000000)
b = np.random.randn(1000000)
fig = plt.figure(num=1, dpi=100, facecolor='w', edgecolor='w')
fig.set_size_inches(10,7)
ax = fig.add_subplot(111)
ax.plot(a, b)
fig.clf()
plt.close()
del a, b
gc.collect()