memory leak troubleshooting techniques

Christoph Becker-Freyseng webmaster at beyond-thoughts.com
Wed Jul 30 00:20:28 CEST 2003


Adam Deutsch wrote:
> I would like to ask some advice about tracking down memory leaks in Python
> code.
> 
> We have a python application running on Python 2.0.1 in an embedded Linux
> environment (kernel version 2.4.7).  We have recently detected a memory leak
> that we can see from "ps aux" is attributable to the Python processes.
> Running Sam Rushing's (http://www.nightmare.com/medusa/memory-leaks.html)
> get_refcounts() function does not yield any smoking guns:  the reference
> counts for all classes remain stable even as memory use climbs.
> 
> Is there any systematic method of determining how Python is using its
> allocated memory?
> 
> Thanks.
> 
There might be one more readon for a memory-leak -- besides an 
increasing refcount.

Have you thought about a growing string? (or an similar object)
In Python a string can have 80 MB without problems / not "hurting" python.
Of course the refount won't get higher as there's just one string -- but 
this one might be getting *huge*.
I had such a problem when programming PersistentThreads. Making internal 
calls to the "ZopeRequestDispatcher" caused sys.path to grow.

Unfortunately I don't know a way in Python to list objects that consume 
more than xy bytes of memory.


Christoph Becker-Freyseng







More information about the Python-list mailing list