Devel::SizeMe is a variant of Devel::Size that can stream out detailed information about the size of individual data-structures and the links between them. It can do this for the entire perl interpreter internals as well as your own perl data structures. It comes with scripts for storing this data in a database and visualizing it in various forms, including graphs and an interactive treemap. Current implementation is alpha and rather hackish. For more info see http://blog.timbunce.org/2012/10/05/introducing-develsizeme-visualizing-perl-memory-use/ and http://blog.timbunce.org/tag/sizeme/ Random TODOs: Integrate changes back into Devel::Size so we can share a common core. Add ref count handling, per https://rt.cpan.org/Ticket/Display.html?id=79789 Output addr as a leaf of a link node for items not scanned due to ref cnt render those as dotted lines on the graph visualization (and thus change from a tree to a DAG) so we can see alternate paths. Optionally add addr to all nodes to enable visualization of memory layout Two cases where PERL_SUBVERSION is checked with a plain || (marked XXX) Restructure: Devel::SizeMe::Core - loads XS and sets options Devel::SizeMe - loads Devel::SizeMe::Core -d:SizeMe=opts? Devel::SizeMe::Stream - parse raw stream Devel::SizeMe::Store - db write Devel::SizeMe::Data - db read / orlite? Devel::SizeMe::Graph - data reading/processing for sizeme_graph sizeme_store - script wrapper for Devel::SizeMe::Store sizeme_graph - Mojolicious app wrapper using Devel::SizeMe::Graph Move Devel::SizeMe::Graph and co out to separate distro. Tests! Remove log scale checkbox from the treemp as it doesn't work yet Support multiple runs to same sizeme_store process, generating separate files Name runs to allow total_size (for example) of multiple data structures