Imperia-Users

Home -> Imperia-Users -> 2004 -> July

 temporäre Daten-Objekte und garbage collection 
Login Login Subscribe Subscribe  Date  07/06/04 09:53:52 GMT
 From  Axel Pawellek
 Subject  temporäre Daten-Objekte und garbage collection
 Previous Thread
 Next Thread
 Start of Thread
 Reference
 Previous Reply
 This Message
 Reply
 Next Reply
Hallo,

vielleicht kann mir ein Perl-Crack mal folgende Frage beantworten:

wir holen mit einem Perl-Script einen Haufen Daten aus einer Datenbank und
schieben sie in den XML-Import von Imperia. Im Prinzip gehen wir dabei ganz
banal vor, in etwa so (Pseudocode):

 db_verbinden();
 my $sth = db_ausfuehren(sql_query);
 my $objekt_temp = unsereKlasse->new();  # temporäres Objekt
 while(my $row = db_holezeile_als_hashref($sth)) {
(*)  $objekt_temp->initData($row);
    ... weitere DB-Abfragen,
    ...   deren Ergebnisse strukturiert
    ...   in $objekt_temp eingefügt werden
    $new .= $objekt_temp->saveXML(); # Ab nach Imperia
 }
 db_holen_beenden($sth);
 db_trennen();

Mir geht es nun um das, was in initData passiert, grob gesprochen sieht das
so aus, daß der Datensatz in ein Unter-Hash von objekt_temp kopiert wird,
wobei allerdings andere Schlüssel als die der Datenbank benutzt werden.

sub initData {
 my $objekt = shift;
 my $hashref = shift; # Hash-Referenz auf DB-Abfrage-Resultat
 $objekt->{"unterobjekt1"} = {};
 $objekt->{"unterobjekt2"} = {};
 ...  while ( (my $k,my $v) = each %$hashref ) {
$objekt->{"unterobjekt1"}->{$übersetzung{$k}} = $v;
 }
 ...
}

Ich frage mich nun, was mit all den referenzierten Hashes aus $objekt_temp
passiert, wenn man initData() für die nächste Zeile aufruft: dann wird
$objekt->{"unterobjekt1"} ja auf einen neuen leeren Hash umgebogen. Wird
dabei der allokierte Speicher des ursprünglich referenzierten Hashes
automatisch freigegeben oder kann man das irgendwie manuell machen? Ich habe
in Erinnerung, daß es in Perl keine garbage collection gibt. Erzeuge ich also
massenhaft zombiehafte Speicherbelegungen?

Schöne Grüße
Axel

--
Axel Pawellek
FernUniversität in Hagen
Zentrum für Fernstudienentwicklung (ZFE)
In der Krone 17
D-58084 Hagen
Tel.: +49 02331 987-4169
Attachments
 1  +-index.html message/rfc822  

ATTENTION: HTML attachments to this mail have been converted to plain text to prevent you from possibly malicious HTML files. Other attachments are included here without any checking. Choose your own poison! The maintainers of this site cannot be held responsible for any damage caused by these attachments.

 temporäre Daten-Objekte und garbage collection
 Previous Thread
 Next Thread
 Start of Thread
 Reference
 Previous Reply
 This Message
 Reply
 Next Reply
 
 07/06/04 09:53:52 GMT  Axel Pawellek

Powered by Imperia
Home | Top | Imprint