Повторное использование ссылок на модули в Python (Matplotlib) - PullRequest
2 голосов
/ 01 марта 2010

Я думаю, что я что-то здесь неправильно понял ... Но здесь идет.

Я использую метод psd в matplotlib внутри цикла, я не заставляю его строить графики, я просто хочу получить числовой результат, поэтому:

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

Но это происходит зацикливание 36 раз каждый раз, когда я запускаю функцию, в которой оно находится.

Я получаю медленную утечку памяти, когда я запускаю свою программу с течением времени, поэтому использовал 'heapy' для мониторинга этого, и каждый раз, когда я запускаю функцию, она добавляет 36 к этим 3 кучам:

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

Я могу только заключить, что каждый раз, когда я использую метод psd, он просто добавляет его в какой-то словарь, тогда как я хочу эффективно стереть память - т.е. сбрасывать pylab в каждом цикле, чтобы он ничего не сохранял.

Возможно, я неправильно истолковываю heapy, но кажется довольно ясным, что pylab просто увеличивает каждый цикл, хотя я только хочу использовать его метод psd, я не хочу, чтобы он сохранял результаты где-либо сам!

Приветствия

1 Ответ

3 голосов
/ 01 марта 2010

Попробуйте это:

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

Это улучшает ситуацию?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...