我想我可能在这里误会了一些东西...但是在这里。
我在循环内的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/