Hanno Schlichting wrote:
>>> Hanno Schlichting recently posted a nice graph showing the persistent
>>> structure of a Plone Page object and it's 9 (!) sub-objects.
>> That graph isn't quite correct ;-)
>> workflow_history has DateTime objects in it, and I think they get their
>> own pickle.
> Nope. DateTime objects are plain old-style classes and don't inherit
> from persistent.*.
Hmm, oh well, my bad...
In that case it must just be that their pickled form is huge compared to
an int ;-)
They are incredibly expensive to unpickle since all
> the DWIM magic in their __init__ get called each time, though.
How come? Unpickling doesn't call __init__ and I don't see why the DWIM
magic would be needed anyway, since everything has already been parsed.
It's actually the list of PersistentMappings that is the problem. Once
that gets large (ie: a content object that's been around for a long
time) then everything that adds workflow history commits a new copy of
Simplistix - Content Management, Zope & Python Consulting
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org