There are several ways to profile the memory usage of perl applications. None of them are both good and easy. All have subtle and not-so-subtle limitations.

In this talk I’ll explain why memory profiling is hard, survey the available techniques and modules, and demonstrate Devel::SizeMe.

Devel::SizeMe is my new perl memory profiler. It builds on the detailed memory pointer chasing done by Devel::Size by adding the creation of a data file that captures details of every item of memory within a perl interpreter (and beyond) and includes tools to visualize the items and their relationships.