[Catalyst-dev] Need help debugging Text::ASCIITable

Andy Grundman andy at hybridized.org
Mon Sep 26 17:41:40 CEST 2005


Perrin Harkins wrote:
> Andy Grundman wrote:
> 
>> I've been trying to fix the leak in T::A but I'm totally stumped, and 
>> so is the author.  If anyone wants to take a crack at it, I've 
>> attached my test script.
> 
> 
> The way you're testing this looks a little suspect to me.  First, Perl 
> doesn't take more memory every time you use a new variable.  Memory is 
> allocated in chunks, so it's hard to predict when the next chunk will be 
> grabbed.
> 
> Also, memory is not reclaimed from lexical variables when they go out of 
> scope.  Perl keeps that memory allocated to $x AFTER it goes out of 
> scope as an optimization.  You have to explicitly undef it to prevent 
> this.  Now, $x is just a single blessed reference here, but keep it in 
> mind.

Actually I still think it's a valid test, and so far the only way I can 
detect the memory leak.  Devel::Size doesn't seem to handle tied arrays, 
and Test::Memory::Cycle and Data::Structure::Util are no help either.

If you comment out the tie in new(), the test will pass.  If you bump up 
the iterations to 5000 or something, it will use even more memory than 
at 1000.  So I trust that when the leak is fixed the test will pass.

-Andy



More information about the Catalyst-dev mailing list