On Thu, 22 Apr 2010 12:54:55 -0400, Jim Fulton <j...@zope.com> wrote:
> On Thu, Apr 22, 2010 at 9:00 AM, Jürgen Herrmann
> <juergen.herrm...@xlhost.de> wrote:
>> hi there!
>> today i ran a check script which iterates over approx 150000 objects
>> and does some sanity check calculations on these. during this loop
>> i saw the zope process use up to about 4.5gb memory. the database
>> has ~3.5million objects in it.
>> i set the zodb cache size for the mount point in question to 10000
>> objects. obviously this limit is not honoured during one transaction:
>> so two questions here:
>> - would the byte-limited zodb cache setting help here?
> No. The limits aren't really limits. They are more like
> suggestions. :) In particular, they are only enforced at
> transaction (or subtransaction) boundaries, when a connection is
> opened or closed, or when applications call certain APIs explicitly.
are these apis exposed somewhere? calling these periodically sounds
cleaner than the aproach below.
>> - if no - how can i iterate over a big set of objects without
>> forcing them to stay in the cache for the whole transaction?
>> after all i just need each object once during the iteration.
> As you're iterating through the objects, if you know you aren't going
> to need an object again or otherwise think it would be OK to free it
> from memory, you can call _p_deactivate on it. If the object hasn't
> been modified, then it's state will be released and it will become a
as my objects contain references to OOBTrees, do i also have to call
_p_deactivate() on these explicitly, or is it enough to call it on the
thanks for your help!
best regards, jürgen
>> XLhost.de - eXperts in Linux hosting ® <<
Jürgen Herrmann, Geschäftsführer
Boelckestrasse 21, 93051 Regensburg, Germany
Geschäftsführer: Volker Geith, Jürgen Herrmann
Registriert unter: HRB9918
Fon: +49 (0)800 XLHOSTDE [0800 95467833]
Fax: +49 (0)800 95467830
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -