[ZODB-Dev] Re: ZODB Benchmarks
Jim Fulton
jim at zope.com
Fri Dec 7 09:43:10 EST 2007
It sounds like I should write some pickle and cPickle tests and we
should update the ZODB trunk to take advantage of this. (/me fears
gettimg mired in Python 3.)
Jim
On Dec 7, 2007, at 4:23 AM, Godefroid Chapelle wrote:
> Godefroid Chapelle wrote:
>> 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.
>
> We can measure some benefit.
>
> For tests on a ZODB prefilled with 100k instances of an archetypes
> class,
>
> update of an instance : 12% improval
> insert of an instance : 15% improval
>
>>>>> If it would,
>>>>
>>>> What do you mean by 'If it would' ?
>>>
>>> If we can measure a benefit.
>>>
>>> Jim
>
> --
> Godefroid Chapelle (aka __gotcha) http://bubblenet.be
--
Jim Fulton
Zope Corporation
More information about the ZODB-Dev
mailing list