[ZODB-Dev] Re: ZODB Benchmarks
Godefroid Chapelle
gotcha at bubblenet.be
Thu Dec 6 14:40:32 EST 2007
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 ?
Or should we be more prudent ?
> If it would,
What do you mean by 'If it would' ?
> then of course we should contribute
> documentation and a test to the Python source tree.
>
> Jim
>
> --
> Jim Fulton
> Zope Corporation
>
--
Godefroid Chapelle (aka __gotcha) http://bubblenet.be
More information about the ZODB-Dev
mailing list