Differences between revisions 4 and 5
Revision 4 as of 2008-02-11 11:06:22
Size: 1198
Editor: PaulBoddie
Comment: Slight tidying.
Revision 5 as of 2008-11-15 14:00:12
Size: 1208
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
As Christian Heimes describes it [http://groups.google.com/group/comp.lang.python/browse_thread/thread/32e62acc62773a3d#d9baaa3a229ad90b here], Python uses its own memory allocator for small objects (< 257 bytes). Larger objects are allocated directly with malloc, smaller objects end up in arenas. The code is well documented [http://svn.python.org/view/python/trunk/Objects/obmalloc.c?rev=56476&view=auto in obmalloc.c]. As Christian Heimes describes it [[http://groups.google.com/group/comp.lang.python/browse_thread/thread/32e62acc62773a3d#d9baaa3a229ad90b|here]], Python uses its own memory allocator for small objects (< 257 bytes). Larger objects are allocated directly with malloc, smaller objects end up in arenas. The code is well documented [[http://svn.python.org/view/python/trunk/Objects/obmalloc.c?rev=56476&view=auto|in obmalloc.c]].
Line 7: Line 7:
 * [http://groups.google.com/group/comp.lang.python/browse_thread/thread/7249eee28515bb92/d8007feb4df9fa4f?lnk=gst&q=trac+memory#d8007feb4df9fa4f tips from Christian Heimes to find memory leaking code]
 * [http://groups.google.com/group/trac-dev/browse_thread/thread/116e519da54f16b difficulties to find a leak in Edgewall Trac]
 * [http://wingolog.org/archives/2007/11/27/reducing-the-footprint-of-python-applications reducing the footpring of python applications]
 * [[http://groups.google.com/group/comp.lang.python/browse_thread/thread/7249eee28515bb92/d8007feb4df9fa4f?lnk=gst&q=trac+memory#d8007feb4df9fa4f|tips from Christian Heimes to find memory leaking code]]
 * [[http://groups.google.com/group/trac-dev/browse_thread/thread/116e519da54f16b|difficulties to find a leak in Edgewall Trac]]
 * [[http://wingolog.org/archives/2007/11/27/reducing-the-footprint-of-python-applications|reducing the footpring of python applications]]

As Christian Heimes describes it here, Python uses its own memory allocator for small objects (< 257 bytes). Larger objects are allocated directly with malloc, smaller objects end up in arenas. The code is well documented in obmalloc.c.

  • Classes with a del method may create reference cycles. The GC can't break cycles when a del method is involved.

  • keeping references to tracebacks, exception objects (except Exception, err) or frames (sys._getframe())

Related information:

FreeMemory (last edited 2010-11-27 04:19:23 by adsl-074-166-103-084)

Unable to edit the page? See the FrontPage for instructions.