Perl Devel::SizeMe - for extracting and visualizing detailed memory usage information
JavaScript C Perl
Pull request Compare This branch is 221 commits behind timbunce:sizeme.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin
lib/Devel
t
.gitignore
CHANGES
MANIFEST
MANIFEST.SKIP
Makefile.PL
README
SizeMe.xs
ppport.h
typemap

README

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