170 похожих чатов

Привет. подскажите пж как работать с оперативной память в питоне

при использовании pandas для больших таблиц. такая ситуация: функция считывает фрейм большой, отрабатывает, затем идут еще ряд функций, которые тоже жрут память. пробовал del, но он не работает. как можно избавляться от мусора в процессе работы?

19 ответов

17 просмотров

import gc gc.collect() по памяти, мб где ошибся

Ω- Автор вопроса
Илья Власов
import gc gc.collect() по памяти, мб где ошибся

в сети так везде и пишут, но почему то не работает

Что за "мусор"?

Ω
в сети так везде и пишут, но почему то не работает

Ну с пандасом сложности есть, так как утекать что-то может внутри самого пандаса на сях. И сборщик питона ничем не поможет. Профилировщиком пройдись

Ω
в сети так везде и пишут, но почему то не работает

Тебе нужно, чтобы счетчик ссылок на датафрейм обнулился. К примеру, объяви его как локальную переменную функции и не возвращай.

Kirill Shikhalev
Зачем?

Чтобы коллектить гарбадж

Илья Власов
Чтобы коллектить гарбадж

То есть ты понимаешь, что твой совет сработает только для разрешения циклических ссылок?

Evgeniy Blinov
То есть ты понимаешь, что твой совет сработает тол...

Циклические ссылки питон сам разруливать умеет. Коллект нужен для того, чтобы принудительно вызвать удаление. Так гц раз в какое-то время проверяет счетчики

Илья Власов
Циклические ссылки питон сам разруливать умеет. Ко...

У тебя не циклическая ссылка и гц никакие счетчики не проверяет

Evgeniy Blinov
Питон сам? Как механизм называется?

Счётчик ссылок. Можешь посмотреть, там генерации 1, 2 , 3 поколения отслеживает. Если работал с профилировщиками, то они эту инфу выводят тоже

Илья Власов
Счётчик ссылок. Можешь посмотреть, там генерации 1...

Счетчик ссылок не работает с циклическими ссылками

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта