Имеется утечка памяти в программе, делал специально мультипроцессорность чтобы от них всех разом избавиться.
Ситуация выглядит так, я в целях отладки запускаю посредством IDLE главный скрипт, затем делаю что надо, на выходе получаю сожранный 1gb оперативной памяти. Если затем программу закрыть и ввести в консоли IDLE команду:
gc.collect()
Выходит утечка и есть, потому что я её вижу, и в то же время её будто и нет, так как сборщик мусора всё нормально убирает когда я руками его вызываю. Вот только сборщик мусора сам по ходу работы похоже за собой не хочет убираться.
Я пробовал в середине скрипта втыкать в определённых местах эту команду чистки мусора, но программа начинает очень медленно от этого работать, производительность падает по ощущениям раз в 20. Такое мне не подходит.
Что тут можно придумать? В питоне я достаточно неопытен, программа имеет гуй и работу с сетью, я сейчас рассматриваю возможность гуй оторвать от воркеров и наладить с ними общение посредством message broker или чего-то такого основанного на сообщениях, чтобы скрипты все были отделены напрочь друг от друга. Хотелось бы конечно как-то всё на текущем уровне исправить. Прошу совета у бывалых форумчан.