Утечка памяти Tkinter CallWrapper - PullRequest
0 голосов
/ 24 января 2019

Я создаю приложение, используя Tkinter и Python 2.7.

У меня утечка памяти в этом приложении. При поиске причин я обнаружил, что у меня протекает множество TKinter.CallWrapper экземпляров.

Эти экземпляры имеют только одну ссылку на них типа instancemethod __call__(bound).

здесь вывод objgraph с использованием следующей строки (раньше я принудительно собирал мусор с gc.collect()): objgraph.show_backrefs(objgraph.get_leaking_objects(objgraph.by_type('Tkinter.CallWrapper'))[502:504], output=f, max_depth=10**100) .

Leak

Я не смог воспроизвести это в меньшем масштабе, поэтому у меня нет исполняемого кода.

Что может хранить эти экземпляры в памяти? Они не являются частью ссылочного цикла, и на них не ссылаются ни из какого фрейма или глобальной переменной. Есть ли другая возможная причина, о которой я не знаю?

С чего мне начать расследование?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...