Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: Perl Memory problem ... (Memory Tools References)

by eyepopslikeamosquito (Archbishop)
on May 10, 2020 at 05:49 UTC ( [id://11116639] : note . print w/replies, xml ) Need Help??

in reply to Perl Memory problem ...

If you give us more information we should be able to help. Meanwhile, these old nodes might give you a clue as to what your problem might be.

Using this node for Memory Tools References nowadays:

General Areas to consider when faced with a Memory Leak

  • Stability: Once your process grows to a certain size, does it stay there, or does it grow further over time?
  • Large CPAN Modules. Are you using any?
  • Circular references. See Eliminate circular reference memory leak using weaken (Perl Maven).
  • Scoping.
  • File/Database handling.
  • Tools. Try one or more from the following section.

Perl Tools and Advice

  • Mini-Tutorial: Perl's Memory Management by ikegami
  • As pointed out by dave_the_m: "once the perl interpreter has exhausted all memory, there's very little it can do. There is a reserved fixed buffer to allow it to display the OOM error itself, but doing anything complex like displaying a Carp::confess()-like stack backtrace would require many memory allocations to generate the display, all of which would themselves fail".

General Tools

  • Clang (Clang is a compiler front end for the C, C++, Objective-C, and Objective-C++ programming languages ... includes a static analyzer, and several code analysis tools ... Clang operates in tandem with the LLVM compiler back end)
  • LLVM (LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture ... designed around a language-independent intermediate representation (IR) that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes)
  • Boehm garbage collector aka Boehm–Demers–Weiser garbage collector (wikipedia)

Static Code Analysis

Code Profiling and Optimization

Testing Concurrent Software

Security Testing

Some Related PM Nodes

More Nodes Added Later

See Also

Updated: Many extra references were added long after the original reply was made.