[Zope] zope vs. memory [was Re: Refcounts, ZODB Cache and memory leaks?]

Dylan Jay gmane at dylanjay.com
Fri May 13 00:01:37 EDT 2005


Just in case anyone can shed anymore light on zope memory woes, here is 
where I've got to in my investigation:

- Memory grows and mostly doesn't shrink.
- Its not due to objects that can't be collected by the GC
- Its not due to the ZODB cache

That leaves the following causes I think
- RAMCache etc and module/class variables. Either mine, plone's or zope's.
- Pythons design of not releasing memory from small objects back to the OS
http://www.sauria.com/~twl/conferences/pycon2005/20050325/Improving%20Python's%20Memory%20Allocator.html

   Has anyone tried to determine how much of an average catalog search is 
<256kb? I'm guessing a lot.

- Some other kind of reference being help somewhere in the zope machinery.



Any tips anyone?


>> "Peter Bengtsson" <mail at peterbe.com> wrote in message 
>> news:loom.20050426T185741-270 at post.gmane.org...
>>> Dylan Jay <me <at> dylanjay.com> writes:
>>>
>>>> If anyone has experience with finding these kind of rouge references 
>>>> I'd
>>>> really appreciate any tips.
>>>
>>> I have no idea how to patch tings with LeakFinder to find your problems 
>>> because
>>> LeakFinder, albeit a great piece of code, attempts an incredibly 
>>> difficult task.
>>> Most likely, your memory leaks is due to an assignment of really large 
>>> lists on
>>> complex objects (eg. more complex than strings or numbers).
>>
>> Can you expound on this a little as this sounds very interesting? Why do 
>> assignments to a list normally result in leaks? Do you mean lists of 
>> complex objects or complex objects that have lists?
>>
>>> Look for any constructs where you extract large lists and do operations 
>>> on them.
>>> Once you have, if you ever, contain these, return to the mailing list 
>>> and we can
>>> try to solve it together.
>>
>> I certainly do operations on lists, partucularly LazyMap etc. I do 
>> operations with catalog results and map them to lazily to custom objects 
>> which are joined by aquisition to catalog brains.
>>
>> I'm new to memory leak debugging in python but have done it before in 
>> java.
>>>From what I understand garbage collection happens differently in java. In
>> java you have to avoid circular references, is the same true in python?
>>
>>
>>>
>>> _______________________________________________
>>> Zope maillist  -  Zope at zope.org
>>> http://mail.zope.org/mailman/listinfo/zope
>>> **   No cross posts or HTML encoding!  **
>>> (Related lists -
>>> http://mail.zope.org/mailman/listinfo/zope-announce
>>> http://mail.zope.org/mailman/listinfo/zope-dev )
>>>
>>
>>
>>
>> _______________________________________________
>> Zope maillist  -  Zope at zope.org
>> http://mail.zope.org/mailman/listinfo/zope
>> **   No cross posts or HTML encoding!  **
>> (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
>> http://mail.zope.org/mailman/listinfo/zope-dev )
>>
>
>
>
> _______________________________________________
> Zope maillist  -  Zope at zope.org
> http://mail.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce
> http://mail.zope.org/mailman/listinfo/zope-dev )
> 





More information about the Zope mailing list