我想我可能在这里误会了一些东西...但是在这里。

我在循环内的matplotlib中使用psd方法,没有使它作图,我只想得到数值结果,所以:

import pylab as pyl
...
psdResults = pyl.psd(inputData, NFFT=512, Fs=sampleRate, window=blackman)


但这每次我运行其中的函数时都会被循环36次。

随着时间的推移,我在运行程序时遇到了缓慢的内存泄漏,因此使用了“堆”来监视它,并且每次运行该函数时,这三个堆都会增加36:

dict matplotlib.line.Line26
dict matplotlib.transforms.CompositeAffine2D
dict matplotlib.path.Path


我只能得出的结论是,每次使用psd方法时,它只会将其添加到某个地方的某个字典中,而我想有效地擦除内存-即每个循环都重置pylab使其不存储任何内容。

我可能会误解堆,但是很显然pylab只是在增加每个循环,即使我只想使用它的psd方法,我也不希望它将结果保存到任何地方!

干杯

最佳答案

尝试这个:

from matplotlib import mlab
psdResults = mlab.psd(inputData, NFFT=512, Fs=sampleRate, window=blackman)


这样可以改善情况吗?

关于python - 在Python(Matplotlib)中重用模块引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2356695/

10-13 04:06