[Vienna-pm] Garbage-Collection

Peter J. Holzer hjp-vienna-pm-list at hjp.at
Thu Aug 11 00:02:58 PDT 2005


On 2005-08-10 22:55:30 +0200, Leopold Toetsch wrote:
> On Aug 10, 2005, at 18:36, Peter J. Holzer wrote:
> >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).
> 
> Wenn trotz explizitem delete noch Speicher verbraucht wird (und das 
> Programm am Ende offsensichtlich heftigst mit aufrauemen beschaeftigt 
> ist) kann ich mir nur 2 Dinge vorstellen:
> a) die "Ausgabe" referenziert noch scalars. D.h. durch substr, regexen 
> oder was immer werden scalars der Eingabe referneziert.

In dem Fall scheint eher die "Eingabe" schuld zu sein: Das Script hat
ursprünglich aus mehreren SQLite-Datenbanken gelesen. Nachdem ich
testweise die interessanten Teile in Textfiles dedumpt und das Script so
umgeschrieben hatte, dass es aus den Textfiles liest, ist das Problem
verschwunden. Ich vermute daher, dass hier irgendwo Referenzen
übrigbleiben. Habe zwar versucht, mittels 

   while (my ($token, $count) = $sth->fetchrow_array) {
       my $tkcnt = $count+0;  # <----
       my $tkprp = $tkcnt/$msgcnt;
       $tp->{$token . ""}{$corpus_name} = [ $tkprp, $tkcnt ];
       #     ^^^^^^^^^^^

die Verwendung von Kopien zu erzwingen aber das scheint nichts
gefruchtet zu haben. 

Interessanterweise ist ein "manuelles" Abbauen des Hashes mittels delete
der einzelnen Elemente schneller ist als sich auf die Garbage-Collection
beim exit zu verlassen.

	hp

PS: Die DBD::SQLite-Version, die ich hier installiert habe, ist ca. 1.5
Jahre alt (0.31). Die aktuelle (1.09) wirft bei einem select, das 0 Rows
liefert, eine Exception :-(.

	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/20050811/37aaa717/attachment.bin


More information about the Vienna-pm mailing list