Hi all,

Look at the following script: 
-----------------------------------------------

use Thread qw(:DEFAULT async yield); 

sub func
{
my @b;
for ($i=0;$i<1000000;$i++)
{ $b[$i] = 'Perl';}
<STDIN>;
undef @b;
print '@b memory returned..';
<STDIN>;
}

@param = ();
my $t = Thread->new(\&func, @param); 
$result = $t->join;

print "End of thread...\n";
<STDIN>;

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

On Windows click on Ctrl-Alt-del and click on Performance to 
look at the available memory. 

When you will run this script and the line 
print "End of thread...\n"; 
is executed all the memory used will be returned by 
Perl.

But  when the line 'undef @b' is executed ,  all the used memory 
is not returned. (please look on the Task manager)...
So my question is:
How can i 'force' Perl to return the used memory ?


My second question is this:

Look at the following script:

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

sub func
{
my @b;
for ($i=0;$i<1000000;$i++)
{ $b[$i] = 'Perl';}
<STDIN>;
undef @b;
print '@b memory returned..';
<STDIN>;
}

func;
func;

print "end ...\n";
<STDIN>;

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


When you will run this script , you will see that the 
second call to func() does take a lot of time(much more 
than the first call) , why ?



Regards,
Amine.


 








_______________________________________________
Perl-Win32-Users mailing list
Perl-Win32-Users@listserv.ActiveState.com
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to