What is PySizer? ---------------- PySizer is a memory usage profiler for Python code - you can use it to find why a Python program is eating memory. It's intended to improve on the current situation of having to call gc.get_objects() and search through the resulting huge list of objects. It was written as part of Google's Summer of Code. Features -------- * You can make a snapshot of all reachable objects at a given time, organised as a tree (well, a graph, since there are cycles). * For any given object, you can find out how much space it takes up, what objects it references and so on. With a patched version of Python, you can also find out what stack of function calls created an object, and what objects were created by each stack of calls. * You can collect objects into groups. For example, you can group each object according to the module it appears to come from. Then you can treat each module as a single object. * You can filter objects, find the amount of space used by instances of each type, find objects which appeared from one snapshot to the next, and so on. Building -------- See INSTALL. Documentation ------------- See doc/tutorial.html to get started, which also has a link to automatically-generated documentation. The documentation isn't so good at the moment, but it should be useful. See doc/internals.ps for a description of how the scanner works internally, if you feel like it :-) Bugs, suggestions, problems, anything else ------------------------------------------ You can contact me at nick.smallbone@gmail.com. I would love to know if you find a use for it, too.