Thread Perl Tk Canvas Objekt lahmt: GUI wird immer langsamer
(9 answers)
Opened by Johnnz at 2006-06-01 20:35
Ich hab ein Spiel (das weniger bekannte Brettspiel "Take it easy") implementiert und dabei das Problem, dass die GUI immer langsamer wird, je mehr Spiele ich spiele ... meine Vermutung ist, dass ich zu viele Objekte kreiere bzw. an Events "bind()"-e.
Nach jedem Spielzug zeichne ich das gesamte Brett neu. Mein Hauptfenster besteht nur aus einem Canvas-Objekt, auf welches ich beim Neuzeichnen 19-mal die Methode createPolygon() und 57-mal die Methode createLine() aufrufe. Da das alte Feld dabei überzeichnet wird, muss ich zudem auf alle Felder $canvas->bind(FeldXY, "<Button-1>", \&selectField); aufrufen, damit es auf Mausklicks reagiert. Nach einigen Spielen (jedes besteht aus 19 Zügen und folglich 19 Repaints) wird die GUI ziemlich lahm. Woran könnte das liegen? Bleiben Objekte die ich mit "createXY" erzeugt habe im Speicher liegen und ich hab unwissentlich noch tausende aktiv und an Mausklicks gebunden? Oder liegts einfach an den unzähligen Binds, die dadurch entstehen? Grüße, Johannes |