Ich habe eine TitleWindow-Komponente, die ich über PopUpManager.addPopUp() anzeigen. Wenn ich die Komponente zu schließen, bin ich das closePopUp Ereignis aufrufen, die die Objekt Variable setzt auf null, wie folgt:Flex 4: Garbage Collection funktioniert nicht
// application
private var myObject:MyObject;
private function openPopUp():void
{
myObject = new MyObject();
myObject.addEventListener('closePopUp', closePopUp);
PopUpManager.addPopUp(myObject, this, true);
}
private function closePopUp(e:Event):void
{
myObject = null;
}
jedoch im Debug-Modus kann ich sehen, myObject auf null gesetzt werden, aber die Speichernutzung doesn‘ t verringern. Wenn ich die Komponente erneut öffne, bleibt die Speichernutzung die gleiche wie zuvor.
Ich hätte gedacht, wenn die Variable myObject auf Null gesetzt ist, recycelt GC das Objekt und gibt Speicher frei. Irgendeine Idee, warum das nicht passiert?
im Debug-Modus können Sie versuchen, System.gc() aufzurufen, um Garbage Collection zu erzwingen (aber nicht in Release). – alxx