[Vienna-pm] Garbage-Collection

Peter J. Holzer hjp-vienna-pm-list at hjp.at
Wed Aug 10 09:36:53 PDT 2005


Ich habe ein kleines Script, das ein relativ großes
Hash-of-Hash-of-Array erzeugt. Der Perl-Prozess wächst dabei auf ca. 1.3
GB (wobei mir die letzten 0.4 GB auch nicht ganz klar sind, denn da wird
nur mehr ausgegeben, und Autovivification kann da IMHO nicht mehr
auftreten, aber egal). RAM hat meine Workstation nur 512 MB. Trotzdem
läuft das Script relativ flott durch (ca. 10 Minuten), bis, ja, bis es
eigentlich fertig ist. Und dort bleibt es dann stehen und die Kiste
swappt ganz fürchterlich vor sich hin. Ich vermute, dass der
Garbage-Collector versucht, die vielen, vielen kleinen Skalare
einzusammeln. Aber warum braucht das so lange? Die Datenstruktur hat
keine Kreise, der Perl-GC ist meines Wissens reference-count-based, mir
käme vor, das sollte sich in einem Durchlauf durch den Tree erledigen
lassen. Und warum macht es keinen Unterschied, wenn ich das Hash schon
vorher mittels

    for my $t (keys %$tp) { 
        delete $tp->{$t};
    }

explizit zerstöre? 

	hp

-- 
   _  | Peter J. Holzer    | Ich sehe nun ein, dass Computer wenig
|_|_) | Sysadmin WSR       | geeignet sind, um sich was zu merken.
| |   | hjp at hjp.at         |
__/   | http://www.hjp.at/ |	-- Holger Lembke in dan-am
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.pm.org/pipermail/vienna-pm/attachments/20050810/7a60f9ea/attachment.bin


More information about the Vienna-pm mailing list