@Kelven
Nein. Der GC löscht Objekte auf die keine Referenz mehr existiert. Wenn ich das Objekt aber in einer globalen Variable (die mit $ beginnen) speichere bleibt diese Referenz solange bestehen bis ich sie selber lösche.
Wenn du das Objekt aber in einer lokalen Variable (die ohne Sonderzeichen beginnen) speicherst, so hast du das Problem, daß diese Variable freigegeben wird, sobald der aktuelle Funktionsaufruf vorbei ist. Die Referenz auf das Objekt verschwindet und es wird vom GC als "löschbar" markiert. Sobald dann der GC Speicher freiräumen muss rückt das Objekt immer näher daran gelöscht zu werden, bis es schließlich vom GC aufgeräumt wird.
Ich vermute, daß dies bei dir das Problem war.