Я использовал ноутбук Jupyter с последней версией Anaconda (2018.12) и заметил, что он использует огромный объем памяти (около 6 ГБ) для печати и непосредственного сохранения ~ 2000 рисунков (1920x1080) в файлы .png в Ubuntu 18.04.
Я попытался воспроизвести эту проблему на своем Mac с помощью Anaconda 4.4.0, но проблема не возникла.
Позже я попытался установить несколько разных версий Anaconda на свой компьютер с Ubuntu.и успешно воспроизвести проблему утечки памяти с помощью более простого кода.
Оказалось, что Anaconda 5.0.0 является последней версией, которая не имеет этой конкретной проблемы утечки памяти.
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,1,101)
n = 0
dt = 0.01
w = 1
while n <= 1000:
y = np.sin(2*np.pi*x + w*n*dt)
plt.clf()
plt.title("T = %.02f s." %(n*dt))
plt.plot(x,y)
plt.savefig("dat/dat_%05d.png" % (n))
plt.close()
n = n+1
Iя использую htop для мониторинга использования памяти.
В Anaconda 5.0.0 он показывает постоянное 1,3% использования памяти на моей машине с 8 ГБ ОЗУ.
В Anaconda 5.1.0использование памяти начинается примерно с 2% и быстро увеличивается, поскольку оно сохраняет графики в файлы .png, достигает 16% использования памяти и остается тем же даже после выполнения ячейкиРабота завершена.
Я пытался использовать
import gc
gc.collect()
, и использование памяти немного уменьшилось до 12%.
И, конечно, использование памятиЯ имею в виду использование памяти только этим конкретным процессом python, а не использование всей системы.
Кто-нибудь уже успешно разрешил эту проблему утечки памяти в jupyter-notebook, включенном в последнюю версию Anaconda?