http://qs321.pair.com?node_id=652516

awy has asked for the wisdom of the Perl Monks concerning the following question:

This question has been asked on a few occasions in the past, most recently (that I can find) about three years ago. Actually, I am pretty surprised that there does not seem to be an answer along the lines of: "Oh yes, you do this ...".

Is there a way that I can get a complete heap dump of all application data from a Perl program, like an hprof dump from a Sun JVM? I realise that this might be a rather blunt instrument but sometimes sifting through the data is the best way to get to the bottom of a problem.

Why? I'm working on an application - a long-running server program - which, under poorly-defined circumstances, exhibits massive memory growth. This could be a 'leak' (as in a discarded circular reference chain) or it could just be uncontrolled growth of some data structure. The program is large and complex and written by many people and I have little clue which module(s) may be responsible. So picking through details of a dump seems like a good strategy; except that I cannot work out how to get such a dump.