Subject: Re: [boost] Updated performance results using BoostSerialization 1.41
From: Kim Barrett (kab.conundrums_at_[hidden])
Date: 2009-12-07 18:26:48
On Dec 7, 2009, at 12:29 PM, Robert Ramey wrote:
> I'm aware of this suggestion and it's motivation. I'm not
> convinced that this is the best way to address.
I'd be happy to discuss alternatives.
> In your particular application, I don't think it should be necessary
> to "reset" the archive as long as you're not serializating any
> pointers. If one is not serializing any pointers, then no
> tracking is done. So a "reset" operation should be surperfluous.
I hadn't realized that archive reuse might already be an option when there's been no pointer tracking. (Of course, that probably also requires that one is using the boost::archive::no_header option, but that is true for my use-cases where this performance issue is of concern.)
That restriction of no pointer serialization is not met by my application. Serialization of pointers isn't common, but some of the data types being serialized are complex and do include pointers, and in some cases may be polymorphic and serialized via base pointers. It might be possible to tag the complex types in some fashion though, and do archive reconstruction when dealing with those. Or it might be possible to detect that complex case has been encountered (by peeking inside the archive) and force a reconstruction on next attempt to reuse. I will add this to my notes about this issue, to think about some more when I finally find some time for it.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk