我想我可能在这里误解了一些东西......但是这里有。
我在matplotlib中使用psd方法在循环中,我没有让它绘制任何东西,我只想要数值结果,所以:
import pylab as pyl
...
psdResults = pyl.psd(inputData, NFFT=512, Fs=sampleRate, window=blackman)
但每次我运行它所使用的功能时,它都会被循环36次。
当我运行程序时,我的内存泄漏很慢,因此使用'heapy'来监视它,每次运行该函数时,它会为这3个堆添加36个:
dict matplotlib.line.Line26
dict matplotlib.transforms.CompositeAffine2D
dict matplotlib.path.Path
我只能得出结论,每次我使用psd方法时,它只是将它添加到某个字典的某处,而我想有效地擦除内存 - 即每次循环重置pylab以便它不存储任何内容。
我可能误解了堆,但似乎很清楚pylab只是在增长每个循环,即使我只想使用它的psd方法,我不希望它将结果保存在任何地方!
干杯
答案 0 :(得分:3)
试试这个:
from matplotlib import mlab
psdResults = mlab.psd(inputData, NFFT=512, Fs=sampleRate, window=blackman)
这会改善情况吗?