我将一些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()
您是否尝试过多次运行任务功能(在for中),以确保无论芹菜,功能都不会泄漏?确保django.settings.DEBUG设置为False(当DEBUG =
True时,连接对象将所有查询保存在内存中)。
问题内容: 我正在使用matplotlib生成许多数值模拟结果的图表。这些图用作视频中的帧,因此我通过重复调用与此函数类似的函数来生成许多图: 问题在于,每次调用此函数时,python进程的内存使用量都会增加几兆字节。例如,如果我用以下循环调用它: 然后ram的使用量会随着时间增长到600MB。但是,如果我在函数定义中注释掉该行,那么ram的使用将保持稳定在52MB。是默认的图形尺寸,因此在两种情
我可以访问figure实例。我知道在这个图中有一个图例,我可以通过。现在我想更改图例的属性。其中一些我可以通过设置器访问,比如。 创建图例时,它接受多个关键字参数: 类matplotlib。传奇传奇(父项、句柄、标签、loc=None、numpoints=None、markerscale=None、scatterpoints=None、scatteryoffsets=None、prop=None、
问题内容: 我正在运行django应用程序,其中包括matplotlib,并允许用户指定图形的轴。这可能会导致 “溢出错误:超出了Agg复杂度” 发生这种情况时,最多会占用100MB的RAM。通常,我会使用,和释放该内存,但是与该错误关联的内存似乎与该绘图对象无关。 有谁知道我该如何释放记忆? 谢谢。 这是一些给我Agg复杂度错误的代码。 问题答案: 我假设您可以至少运行一次您发布的代码。该问题仅
我正在创建一个应用程序,当我单击一个按钮时,它将在new中打开一个表。但我的问题是,当我关闭该表的时,应用程序不会释放内存。JavaFX有什么问题吗?还是我得做点别的? 我尝试在该阶段结束时将所有内容设置为空,但仍然没有释放内存。 表的舞台上的关闭事件: 表视图; 舞台我的舞台; 我已经创建了一个名为replaceScene方法来使用文件为Stage加载场景。它将返回它的控制器和设置的场景进入舞台
根据我的理解, free()用于释放之前使用malloc分配的内存。 在我下面的片段中,我释放了我分配的内存。但是即使释放后我也能够访问指针?这怎么可能? free如何在内部工作?
我目前使用matplotlib以以下方式生成图例: 这在某种程度上是可行的,见1。但我在我的传奇中复制了信息。 我宁愿把传说分开。所以我有不同颜色的线对应于时间t,一条法线作为我的解析解,一个点作为我的模拟结果。 诸如此类 --(红线)t=25 --(蓝线)t=50 --(绿线)t=500 模拟 --解析解 现在有人知道我如何用matplotlib实现这一点了吗?