[Antonio Beamud Montero] > Well, now I can minimize the cache and get the next values (an unclosed > connection fixed): > [['BTrees.OOBTree.OOBTree', 3], ['Persistence.PersistentMapping', 6], > ['request.Request', 14], ['status.Status', 3]] > > But my server doesn't free any memory, now it uses 55Mb of resident > size... How I can debug this "references"?
Many layers are involved in memory management, from ZODB through Python down to your platform C's malloc/free implementation and ending in your OS kernel Unless you become knowledgable about all of them (and vital details vary wildly across specific platform C and OS versions), chances are decent you'll never find a correct answer. A simple thing to _try_ is compiling with Python 2.5a1 when it comes out (in a few weeks). One of Python's (many) memory subsystems never returned large blobs of memory to the platform C free() before 2.5a1, and _may_ return such blobs in 2.5a1, thanks to changes derived from this patch: http://www.python.org/sf/1123430 That may or may not reduce your app's memory use. Note that even if Python does return more memory to the platform C free(), there's no guarantee that free() will in turn return such memory to the OS; and even if free() does return it to the OS, there's no guarantee that the OS will reduce the process VM reservation; etc. The easiest-- & only sure --way to find out whether it helps your app using your platform C and your OS is to try it. _______________________________________________ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev