Thread Perl und Garbage collector: Warum macht der Perl GC nichts? (14 answers)
Opened by Gast at 2006-03-24 18:37

Gast Gast
 2006-03-24 18:37
#64052 #64052
hi!

Ich hab ein Problem, dass Perl Speicher nicht freigibt, der aber eigentlich nicht mehr referenziert wird (glaube ich) und versuche es in folgendem Bsp darzustellen. Es ist auf das wesentliche reduziert, um das Problem darzustellen. Ich hab Perl 5.8.4. auf Debian Sarge.

Eigentlich spielt sich das bei mir in einer subroutine ab. Ich habs aber auch noch in ein package gesteckt um sicherzugehen, dass nichts mehr referenziert wird.
Also:

----main-------------------------------------------------------------------
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use p; # mein package

my $p=p->new ();
$p->x();          # die funktion, sonst nichts
$p=undef;

for (;;) # damit ich mir noch den speicher anschaun kann
{  sleep (1);print ".";  }

--------p.pm--------------------------------------
package p;
       my $class = shift;
       my $self = {};
       bless $self, $class;
       return $self;
}


sub x()
{
my $x;
my $str = "asfsdafssssssaaaaaadfsaf";
for (my $z=0;$z <1000000; $z++)
{ $x.= $str; }
#tut nichts ausser speicher fressen
}

-------------------------------------------------------------------------------

edit pq: code-tags hinzugefĆ¼gt\n\n

<!--EDIT|pq|1143222579-->

View full thread Perl und Garbage collector: Warum macht der Perl GC nichts?