필자는 위젯 툴킷으로 GTK +를 사용하여 파이썬에서 작은 애플리케이션을 작성하기 시작했습니다. 최근에 나는 메모리 최적화를하기로 결정하고 생성 한 대부분의 PyGTK 객체가 가비지 컬렉터에 의해 해제되지 않는다는 것을 알게되었습니다. 이 숫자는 창을 열고 나중에 제대로 파괴하더라도 계속 커집니다.Python 및 GTK + : 가비지 컬렉터 친화적 인 객체를 만드는 방법은 무엇입니까?
누군가 파이썬에서 GTK + 객체를 만들고 처리하는 방법에 대해 올바른 방향으로 나를 가리킬 수 있습니까? Glade 등을 사용하지 않습니다.
class SomeWindow:
def __init__(self):
self.window = gtk.Window(type=gtk.WINDOW_TOPLEVEL)
대신에 :
class SomeWindow(gtk.Window):
def __init__(self):
super(SomeWindow, self).__init__(type=gtk.WINDOW_TOPLEVEL)
2+는 GC 목록에 적은 개체를 제공합니다
또한 나는이 같은 창을 만드는 것으로 나타났습니다.나에게 줄 수있는 조언이 있으십니까?
심각한 버그가 아니라면 조만간 수집 될 것입니다. 순환 참조는 불가능한 (또는 적어도 비실용적 인) 재사용을 유발하여 사용자가 보는 효과를 이끌어 내지만 GUI 툴킷에서는 거의 피할 수없는 것들입니다. – delnan
@delnan 답장을 보내 주셔서 감사합니다. 파이썬 용 GTK +가 GI 기반 일 때 변경 될 예정입니까? – MeanEYE
"GC 목록"이란 무엇입니까? gc.collect()로 얻는 숫자를 의미합니다. len (gc.garbage())가 증가하고 있습니까? – maxy