Christian Kruse: Garbage Collector umgehen

Beitrag lesen

Hallo,

Ich kenne zwar mich nicht mit dem Perl Garbage Collector aus, aber
normalerweise arbeiten die so, dass solange eine Referenz darauf
verweist die nicht "weggeräumt" werden. So sollte es auch der
Perl-GC halten. Alles andere wäre ja unlogisch.

Dem ist auch so. Aber es werden *alle* Referenzen aufgeloest, wenn
das Script beendet wird.

Das ist Unfug. Damit stellst du hoechstens ein Memory Leek her.
Und nichtmal das dauerhaft: sobald das Script beendet ist, ist
der Speicher aufgeraeumt, basta.
Memory-Leak? Bei sich gegenseitig referenzierenden Objekten? Also
wenn der GC wie oben beschrieben arbeitet (wovon ich mal ausgehe),
dann ist sowas schlicht und ergreifend nicht möglich!

Es war von einem Objekt die Rede, das auf sich selbst verweist. Und
damit wird duchaus ein Memory Leek hergestellt: es koennen ruhig alle
externen Referenzen geloescht sein, die Referenz im Objekt selber ist
immer noch vorhanden und kann auch nicht aufgeloest werden. Und schon
hat man einen feinen Memory Leek.

Ups .... was sind das nur für Vorschläge. Serialisieren tut man,
wenn man ein Objekt "dauerhaft" (über die Laufzeit des Skripts
hinaus) aufbewahren will oder übertragen möchte.

Darum ging es doch. Das stellt hier aber eine enorme
Sicherheitsluecke dar, wie ich bereits ausgefuehrt habe: das Objekt
wird ueber ein Formular uebermittelt. So kann sich ein User ein
beliebiges Objekt selber zusammenstricken und die Daten manipulieren.

Und Corba ..... man kann es für solche Dinge verwenden, aber ist
doch arg übertrieben.

Nein. Das ist eigentlich eine normale Vorgehensweise, wenn ein Objekt
ueber n Instanzen erhalten bleiben soll.

Gruesse,
 CK