创建matplotlib图形后如何释放内存

我将一些matlpotlib函数集成到了一些django-celery任务中。

每次调用任务时,都会将更多RAM专用于python。不久之后,python占用了所有RAM。

如何释放此内存?

我问过类似的问题,特别是有关内存锁定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()

回答:

您是否尝试过多次运行任务功能(在for中),以确保无论芹菜,功能都不会泄漏?确保django.settings.DEBUG设置为False(当DEBUG =

True时,连接对象将所有查询保存在内存中)。

以上是 创建matplotlib图形后如何释放内存 的全部内容, 来源链接: utcz.com/qa/408738.html

回到顶部