在Python中重用模块引用(Matplotlib)
我觉得我可能在这里误解了一些东西……不过我还是试试吧。
我在一个循环里使用了matplotlib中的psd方法,我并不是想让它画图,我只是想要数字结果,所以:
import pylab as pyl
...
psdResults = pyl.psd(inputData, NFFT=512, Fs=sampleRate, window=blackman)
但是这个循环每次运行这个函数时会执行36次。
我发现我的程序运行一段时间后会出现内存泄漏,所以我用了'heapy'来监控这个情况,每次运行这个函数时,它会在这三个堆里增加36:
dict matplotlib.line.Line26
dict matplotlib.transforms.CompositeAffine2D
dict matplotlib.path.Path
我只能得出结论,每次我使用psd方法时,它只是把结果加到某个字典里,而我想要的是有效地清空内存——也就是说,每次循环时重置pylab,这样它就不会存储任何东西。
我可能误解了heapy,但看起来很明显,pylab在每次循环中都在增长,尽管我只想使用它的psd方法,我并不想让它自己保存结果!
谢谢
1 个回答
3
试试这个:
from matplotlib import mlab
psdResults = mlab.psd(inputData, NFFT=512, Fs=sampleRate, window=blackman)
这样做有没有改善情况呢?