Фон : Иногда я неоднократно запускаю одну и ту же ячейку на ноутбуке Jupyter для построения графиков, и это приводит к ядру d ie. Я подозреваю, что это связано с проблемой памяти. Поэтому я делаю следующий тест.
import gc
import numpy as np
import matplotlib.pyplot as plt
def my_func():
x = np.arange(0, 10)
plt.plot(x, x)
plt.show()
collected = gc.collect()
print(f"Garbage collector: collected {collected} objects")
print("Creating cycles...")
my_func()
collected = gc.collect()
print(f"Garbage collector: collected {collected} objects")
Запуск на ноутбуке Jupyter
Garbage collector: collected 51 objects
Creating cycles...
Garbage collector: collected 2250 objects
Но когда я снова запускаю ноутбук (без перезапуска ядра),
Garbage collector: collected 2290 objects
Creating cycles...
Garbage collector: collected 0 objects
Работа на Python Переводчик
Garbage collector: collected 9 objects
Creating cycles...
Garbage collector: collected 0 objects
Похоже, когда я запускаю скрипт на Python Интерпретатор, объект фигуры автоматически освобождается после того, как он покидает my_func
. Но это не относится к ноутбуку Jupyter. Кто-нибудь может объяснить разницу? Спасибо