чистом jupyter notebook, при старте используется 200 мб памяти, в процессе работы func читает паркет, что-то с ним делает, а потом записывает обратно в паркет. т.е. не создает никаких глобальных переменных.. в процессе работы утилизация памяти доходит до 30 гб., а по окончанию работы функции в памяти остается что-то на 11гб, хотя никаких новых переменных в глобальной области не появилось..
в чем может быть дело? И как этого избежать?
Может, внутри функции дублируются временные данные?
Питоновский сборщик мусора довольно ленив. Если ты вызовешь явно import gc; gc.collect() , как расход памяти меняется?
нет, ничего не происходит пробовал
ну так всё верно. ты определил данные, склеил их и присвоил переменной, которая и держит их в памяти. в чем трабл?
трабл в том, чтобы от нее избавиться.. только проблема в том, что переменной уже нет этой - функция завершила работу и всю локальную область почистила
т.е она ничего не возвращает?
ну тогда ясно. есть такая штука в питоне как кэширование данных
Обсуждают сегодня