при использовании pandas для больших таблиц. такая ситуация: функция считывает фрейм большой, отрабатывает, затем идут еще ряд функций, которые тоже жрут память. пробовал del, но он не работает. как можно избавляться от мусора в процессе работы?
import gc gc.collect() по памяти, мб где ошибся
в сети так везде и пишут, но почему то не работает
Значит ссылки остались где-то
Потому что хуйню пишут
Что за "мусор"?
Ну с пандасом сложности есть, так как утекать что-то может внутри самого пандаса на сях. И сборщик питона ничем не поможет. Профилировщиком пройдись
Зачем нужен gc, знаешь?
Зачем?
Тебе нужно, чтобы счетчик ссылок на датафрейм обнулился. К примеру, объяви его как локальную переменную функции и не возвращай.
Чтобы коллектить гарбадж
То есть ты понимаешь, что твой совет сработает только для разрешения циклических ссылок?
Циклические ссылки питон сам разруливать умеет. Коллект нужен для того, чтобы принудительно вызвать удаление. Так гц раз в какое-то время проверяет счетчики
У тебя не циклическая ссылка и гц никакие счетчики не проверяет
Питон сам? Как механизм называется?
Счётчик ссылок. Можешь посмотреть, там генерации 1, 2 , 3 поколения отслеживает. Если работал с профилировщиками, то они эту инфу выводят тоже
Счетчик ссылок не работает с циклическими ссылками
У тебя каша в голове, чел
Обсуждают сегодня