Boost logo

Boost :

Subject: Re: [boost] Comparison of serialization results
From: Brian Wood (woodbrian77_at_[hidden])
Date: 2011-12-29 16:21:41


Robert Ramey:
> This first came up several years ago and I spent a little time looking at
> it.
> I was sort of intrigued in that the usage of TMP driven inline code should
> be optimal for cases where tracking wasn't involved. And in these test
> cases there isn't any tracking. So I looked a little at the tests on the
> page.
>
> a) first I couldn't compile them so I couldn't repeat the results.
> Something
> was missing (I forget what now).

I believe you are referring to something from several years ago here.

> b) so I inspected the code. My conclusion was that the being used was
> that in the i/o itself rather than the serialization. Boost serialization
> relies
> on streambuf to do it's i/o and the time is sensitive to things like
buffer
> sizes
> etc. It seems that brian's code uses some other method which whose
> source isn't visible to me. (SendBuffer, etc).

This sounds like the present. Did you download and build the archive here

--
http://webEbenezer.net/build_integration.html ?  (Also in an earlier note
today
I mentioned recent changes to the test archive here --
http://webEbenezer.net/comp/tests.tar.bz2 .)
> c) Brian did point out some cases where boost serialize could be improved
> particularly using hints in std collections.  These were incorporated.  I
> also
> implemented the binary i/o in terms of streambuf rather than stream which
> was a noticible improvement.
Yes, now it would probably not be difficult to add support for ::std::move.
I'm asking for someone to open a ticket for that so someone doesn't ask
me to. ;)
[...]
> e) So, given tat the timings aren't that far apart, and lacking any other
> information, I'm inclined to attribute any discrepencies to the way i/o is
> handled
> in the different systems.  If one had nothing else to do he could make
> a replacement for streambuf which focused on fast i/o perhaps at the
> expense of portability.  In particular, an asyncronous memory mapped i/o
> library might be an interesting addition to boost. And that would be cool
> to plug in the serialization library.
While true that the timings aren't real far apart, I note that the
timings of the (slightly) more complicated tests are worse for the
Boost Serialization library than the simpler tests.  Real uses have
more than a vector<deque<double> > of complication.  So there
may be a compounding effect, but I'm just speculating.
> Finally, I think that the scale and breadth of brian's library is much,
much
> smaller than boost serialization library.
The breadth is smaller.  I don't support text or XML based serialization.
> Then there is the fact that the
> distribution model is totally different than that of boost and open source
> libraries in general.  I just don't see how these packages/approaches
> could be considered comparable in any way.
While the distribution models are different, I think the binary part of
the Boost Serialization library is comparable to the Ebenezer approach.
Thanks for mentioning the distribution model.
-- 
Brian Wood
Ebenezer Enterprises
http://webEbenezer.net

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk