Переполнение памяти при сохранении графиков Matplotlib в цикле
Я использую итеративный цикл для построения данных с использованием Matplotlib. Когда код сохранил около 768 графиков, он выдает следующее исключение.
RuntimeError: Could not allocate memory for image
Мой компьютер имеет около 3,5 ГБ оперативной памяти. Есть ли способ освободить память параллельно, чтобы память не исчерпалась?
- Как конкатенировать несколько pandas.DataFrames без использования в MemoryError
- Есть ли способ удалить созданные переменные, функции и т. Д. Из памяти интерпретатора?
- Сохраните память в Python. Как перебирать строки и экономить их с помощью 2-миллионного файла?
- Динамический способ работы с памятью в python с использованием ctypes
- Почему мой код Fortran завершен f2py, используя так много памяти?
Помните ли вы, что вы close
свои фигуры, когда закончите с ними? например:
import matplotlib.pyplot as plt #generate figure here #... plt.close(fig) #release resources associated with fig
В качестве немного другого ответа помните, что вы можете повторно использовать цифры. Что-то вроде:
fig = plt.figure() ax = plt.gca() im = ax.imshow(data_list[0],...) for new_data in data_list: im.set_cdata(new_data) fig.savefig(..)
Который заставит ваш код работать намного быстрее, так как ему не нужно будет устанавливать и сбрасывать цифру более 700 раз.
- Можно ли использовать с операторами в генераторах?
- Написание и чтение одного и того же файла csv в Python
- Сохранить функции для повторного использования без повторного выполнения
- Распределение памяти CPython
- Пул объектов по ограничениям памяти
- Что делает python sys.intern, и когда его следует использовать?
- Ошибка памяти только в IDE Spyder
- Свободная память памяти на месте
- Повторное использование фрагмента списка для получения длины требует дополнительной памяти?
- Ограничение памяти GAE
- Создайте цифру, подсчитанную по ссылке