私はウィジェットツールキットとしてGTK +でPythonで小さなアプリケーションを作成し始めました。最近、私はいくつかのメモリ最適化を行うことにして、私が作成するPyGTKオブジェクトのほとんどがガベージコレクタによって解放されることはないことに気付きました。この数字は、窓を開けてもその後も適切に破棄しても増え続けます。PythonとGTK +:ガベージコレクタフレンドリオブジェクトを作成するには?
誰かがPythonから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回答ありがとう、これはPythonのGTK +がGIベースのときに変更されますか? – MeanEYE
「GCリスト」とはどういう意味ですか?あなたはgc.collect()で得る数字を意味します。 print len(gc.garbage())が増加していますか? – maxy