Meliae is an application similar to heapy (in the 'guppy' project), in its attempt to understand how memory has been allocated.
Currently, its main difference is that it splits the task of computing summary statistics, etc of memory consumption from the actual scanning of memory consumption. It does this, because I often want to figure out what is going on in my process, while my process is consuming huge amounts of memory (1GB, etc). It also allows dramatically simplifying the scanner, as I don't allocate python objects while trying to analyze python object memory consumption.
It will likely grow to include a GUI for browsing the reference graph. For now it is mostly used in the python interpreter.
The name is simply a fun word (means Ash-wood Nymph).
What's New in This Release: [ read full changelog ]
· Add ``__sizeof__`` members to a lot of the core classes (IntSet, etc.) (John Arbash Meinel)
· ``ObjectManager.compute_total_size()`` now only computes the size of a single object, rather than all objects. All objects took too long to be useful anyway, better to make it easier to use the useful api. (John Arbash Meinel)
· ``obj.iter_recursive_refs()`` can now be used to find all objects referenced from this object (including obj). It can also take an iterable of object addresses to exclude. Which makes it easy to ask, "What objects are accessible from X that aren't accessible from Y?" (John Arbash Meinel)
· ``ObjectManager.summarize()`` can now take an object and an exclusion list, and summarize the referenced objects. This can be quite useful when you want to look at just a subset of the graph. The syntax is``ObjectManager.summarize(obj, [not_address1, not_address2])``. (John Arbash Meinel)
· ``obj.all()`` and ``obj.compute_total_size()`` helpers. These let you get the set of referenced objects matching the type (like ``om.get_all()``). But they *also* allow you to pass an exclusion list, so you can only get things reachable from here and not reachable from there. (John Arbash Meinel)