Front page | perl.perl5.porters |
Postings from July 2000
memory leak?
Thread Next
From:
Jeffrey Friedl
Date:
July 31, 2000 11:13
Subject:
memory leak?
Message ID:
200007300436.VAA17664@ventrue.yahoo.com
Hi,
I've found a memory leak -- either between my ears, or in Perl.
This program:
#!/usr/local/bin/perl -w
use strict;
sub size(;$)
{
my $message = shift || "";
my ($ksize) = (`ps -p $$ -o vsize` =~ m/(\d+)/);
printf "%4.1f meg: %s\n", $ksize/1024, $message;
}
size("start");
size("start");
size("start");
{
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size();
$_ = 'x' x (1024*1024); size("last inside block");
}
size("before undef");
undef($_);
size("after");
prints:
2.5 meg: start
2.5 meg: start
2.5 meg: start
4.5 meg:
5.5 meg:
6.5 meg:
7.5 meg:
8.5 meg:
9.5 meg:
10.5 meg:
11.5 meg:
12.5 meg:
13.5 meg:
14.5 meg: last inside block
14.5 meg: before undef
13.5 meg: after
Older versions of Perl that I checked do the same thing (except perl4, which
seems to preallocate the whole 14 meg at compile time). Also, I got the
same results on the various Linux/FreeBSD platforms I tested this on.
It seems odd that it's sucking up so much memory and never releasing it.
Should I submit this as a bug report?
Jeffrey
Thread Next
-
memory leak?
by Jeffrey Friedl