in reply to Memory leakage? How to avoid/detect them and profile memory usage?

There are only two things to worry about 1) using too much memory by loading too much data into memory

2) actual leaks (circular references) which prevent release/reuse of memory

To prevent 1) exausting memory, use a database like DBD::SQLite, DBM::Deep, BerkeleyDB...

To prevent 2) leaks, review your code for parent/child relationships, closures, circular references (self reference) , missing DESTROY/destructors, then use Scalar::Util::weaken on any duplicate references, and break circular references in destructors

bugs in HTML::TableExtract,
Tutorials: Variable Scoping in Perl: the basics,
Coping with Scoping , Mini-Tutorial: Perl's Memory Management,
Lexical scoping like a fox,
Read this if you want to cut your development time in half!,
Closure on Closures , perlref#Circular References,
Memory leaks and circular references,
Circular references and Garbage collection.,
make perl release memory,
about memory management , Re^3: Scope of lexical variables in the main script , Re: What's the weaken here for?,
Devel::Cycle,
Devel::NYTProf,
Devel::Leak Devel::LeakTrace,
WeakRef

  • Comment on Re: Memory leakage? How to avoid/detect them and profile memory usage?