Блокнот Jupyter в Ubuntu не освобождает память - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть фрагмент кода (Python 3.7) в ячейке ноутбука Jupyter, который генерирует фрейм данных pandas (df), содержащий пустые массивы.

Я проверяю потребление памяти df, просто посмотрев наприложение системного монитора, предустановленное в Ubuntu.

Проблема в том, что, если я запускаю ячейку второй раз, потребление памяти удваивается, даже если df назначен той же переменной.

Если язапускать несколько раз одну и ту же ячейку, системе не хватит памяти, и ядро ​​будет самокрашиваться.

Использование del df или gc.collect() также не освободит память.

Перезапуск ядра ноутбука - единственный способ освободить память.

На практике Я ожидаю, что память останется примерно такой же, потому что я просто переназначаю новый df на ту же самую переменную иснова.

Действительно, память накапливается, только если я запускаю код на Linux-машине и в ноутбуке.Если я запускаю тот же код через терминал python script.py или если я запускаю тот же самый ноутбук на macOS, нагрузка на память не изменится, я могу запустить одну и ту же ячейку несколько раз, и занятая память останется стабильной (как и ожидалось).

Можете ли вы помочь мне указать, откуда возникла проблема и как ее решить?

PS Как Python, так и Jupiter установлены вместе с Anaconda 2018.12 в Ubuntu 18.04.

Iзадавали тот же вопрос сообществу Ubuntu, так как я не уверен, что это строго связано с самим питоном, но я до сих пор не получил ответов.

...