[ZODB-Dev] Re: ZODB Benchmarks

Godefroid Chapelle gotcha at bubblenet.be
Thu Dec 6 17:21:11 EST 2007


Jim Fulton wrote:
> 
> On Dec 6, 2007, at 2:40 PM, Godefroid Chapelle wrote:
> 
>> Jim Fulton wrote:
>>> On Nov 6, 2007, at 2:40 PM, Sidnei da Silva wrote:
>>>>> Despite this change there are still a huge amount
>>>>> of unexplained calls to the 'persistent_id' method of the ObjectWriter
>>>>> in serialize.py.
>>>>
>>>> Why 'unexplained'? 'persistent_id' is called from the Pickler instance
>>>> being used in ObjectWriter._dump(). It is called for each and every
>>>> single object reachable from the main object, due to the way Pickler
>>>> works (I believe). Maybe persistent_id can be analysed and optimized
>>>> for the most common cases?
>>> Yup.
>>> Note that there is a undocumented feature in cPickle that I added 
>>> years ago to deal with this issue but never got around to pursuing.  
>>> Maybe someone else would be able to spend the time to try it out and 
>>> report back.
>>> If you set inst_persistent_id, rather than persistent_id, on a 
>>> pickler, then the hook will only be called for instances.  This 
>>> should eliminate that vast majority of the calls.
>>> Note that this feature was added back when testing was minimal or 
>>> non-existent, so it is untested, however, the implementation is 
>>> simple enough.  :)
>>
>> Do you mean that the ZODB has enough tests now that making the change 
>> and running the tests might already be a good proof ?
> 
> No, I mean that pickle and cPickle lack tests for this feature.
> 
>> Or should we be more prudent ?
> 
> It would be nice to try this out with ZODB to see if it makes much 
> difference.  If it does, then that would provide extra motivation for me 
> to add the missing test.
> 
> Roché Compaan said he would try it out, but I just realized that he 
> might have been waiting for me.
> 

Laurent (cced) tried it today and it seems it does make a difference.

Our benchmark is running this night with bigger amount of content.

We will be back with results tomorrow.

> 
>>> If it would,
>>
>> What do you mean by 'If it would' ?
> 
> If we can measure a benefit.
> 
> Jim
> 
> -- 
> Jim Fulton
> Zope Corporation
> 
> 


-- 
Godefroid Chapelle (aka __gotcha) http://bubblenet.be


More information about the ZODB-Dev mailing list