[Vienna-pm] Garbage-Collection

Peter J. Holzer hjp-vienna-pm-list at hjp.at
Wed Aug 10 11:19:08 PDT 2005


On 2005-08-10 18:53:23 +0200, Marinos Yannikos wrote:
> Peter J. Holzer schrieb:
> > bis, ja, bis es
> > eigentlich fertig ist. Und dort bleibt es dann stehen und die Kiste
> > swappt ganz fürchterlich vor sich hin.
> 
> Klingt so, als würde es die übrigen ~0.8gb erst einmal reinswappen, um 
> sie dann freizugeben (dort sind ja wohl auch Daten zu manipulieren 
> währen des GC).

Zweifellos. Aber die Daten muss er ja wohl beim Anlegen, Bearbeiten und
Ausgeben des Trees auch angegriffen haben und das geht deutlich
schneller. Es scheint also so zu sein, dass er beim Aufräumen die Daten
entweder in sehr zufälliger Reihenfolge angreift (was zu wildem Thrashen
führen würde) oder mehrfach.

Das widerspricht aber dem, was ich glaubte, über den
Perl-Garbage-Collector zu wissen.

Ich dachte, das würde einfach nur Reference-Counts verwalten und jedes
Objekt sofort freigeben, wenn der Reference-Count auf 0 fällt. Daher
auch mein Experiment, die Elemente des Hashs explizit zu entfernen. Mit
jedem Element, das ich entferne, müsste ein Teilbaum gc't werden. Wenn
das Hash am Schluss leer ist, gibt es auch keine anonymen Arrays und
Hashes mehr und das Programm müsste sofort terminieren - ist aber nicht
so. (Jetzt ist es übrigens gerade fertiggeworden - nach gut 3 Stunden)


>  >    for my $t (keys %$tp) {
>  >        delete $tp->{$t};
>  >    }
> 
> Wieviele keys sind das denn so?

Ca. 250_000. Jeder Value ist wieder ein Hashref auf ein anonymes Hash
mit 27 Keys (in allen die gleichen), deren Values Arrayrefs auf Arrays
mit 3 Zahlen (etliche davon undef) sind.

Also 250000 Hashes, 6.75 Mio Arrays, und schätzungsweise an die 20
Millionen Skalare.

	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/df4870bb/attachment.bin


More information about the Vienna-pm mailing list