=head1 Storable 2.15 has a memory leak Here's how I discovered it. First you go to where cpanplus keeps its configuration info (the .cpanplus directory) $cpanplusconf->{conf}{base} and delete the sourcefiles.*.stored file C:\Perl\.cpanplus>perl -e"die time" 1117533963 at -e line 1. C:\Perl\.cpanplus>cpanp CPANPLUS::Shell::Default -- CPAN exploration and modules installat +ion (v0.053) *** Please report bugs to <cpanplus-bugs@lists.sourceforge.net>. *** Using CPANPLUS::Backend v0.053. ReadLine support disabled. CPAN Terminal> l CGI Details for 'CGI' Author Lincoln D. Stein (lstein@cshl.org) Description None given Development Stage Unknown Interface Style Unknown Language Used Unknown Package CGI.pm-3.10.tar.gz Public License Unknown Support Level Unknown Version Installed 3.10 Version on CPAN 3.10 Contains: CGI CGI::Carp CGI::Cookie CGI::Fast CGI::Pretty CGI::Push CGI::Util CPAN Terminal> q Exiting CPANPLUS shell C:\Perl\.cpanplus> C:\Perl\.cpanplus>perl -e"die time" 1117533981 at -e line 1. C:\Perl\.cpanplus>perl -e"die 1117533981-1117533963" 18 at -e line 1. C:\Perl\.cpanplus>dir *stored 05/31/2005 03:06 AM 14,631,498 sourcefiles.2.15.stored This is cool (18 seconds), but if you repeat these steps, cpanp will +load sourcefiles.2.15.stored, but quitting will take a very very long time, eating %100 of the CPU, and increasingly more and more memory. I quit after the first time. I've traced through CPANPLUS, and it is the call to Storable::nstore that is to blame. =cut #use Pod::Usage;pod2usage(-verbose => 2); print "you should chdir where CPANPLUS keeps sourcefiles*.stored$/"; print "which is something like \$cpanplusconf->{conf}{base}$/"; print "and delete the sourcefiles.*.stored file$/"; print "This should take a short time (under a minute)$/"; my $now = time; system qw[ perl -S cpanp l CGI]; print time-$now,$/,$/; print $_,$/ for glob 'sourcefiles*.stored'; print "This should take a long time (many minutes)$/and leak memory$/" +; $now = time; system qw[ perl -S cpanp l CGI]; print time-$now,$/,$/;
It only happens with Storable 2.15 and up, so downgrading to Storable 2.14 seems to fix it, as does using (Storable-2.15+ with) perl 5.8.5 and up.
Corion says maybe it is a memory leak/allocation problem that was fixed in 5.8.5, he might be right.
In reply to Re: Storable::freeze performance problem
by PodMaster
in thread Storable::freeze performance problem
by Smoothhound
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |