$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Robert Ramey (ramey_at_[hidden])
Date: 2007-02-15 16:30:20
brass goowy wrote:
> Robert Ramey writes:
>
> 1.33.1  // I pass an ofstream to binary_oarchive
> takes ~5200 microseconds
>
> 1.35     // I pass a filebuf to the binary_oarchive here
> takes ~3900 microseconds
Hmm I'm very surprised that there is any detectable difference between the 
above two.
>
> Ebenezer Enterprises
> takes ~1200 microseconds
>
We'll look into this.  I'm surprised to find such a difference.  The 
serialization code for standard containers of primitives is just a loop 
through the container elements which writes to the streambuf. (unless I 
forgot something or there is bug - always a possibility) Its not clear to me 
how to make this much faster without setting aside std::streambuf and using 
some other less portable method.  In my view, boost bjam doesn't provide 
easy access to code profiling which is what I think is needed here.
Robert Ramey
> The stripped 1.35 executable is ~22,600 bytes  and the stripped EE
> version  is ~8,200 bytes.
This is less of a concern to me.  boost serialization uses a lot of template 
code which may or may not account for this.  I don't know how comparable the 
feature sets are and its possible that this might explain such a difference.
> I haven't tested with vectors yet.
Your tests with std::list have already convinced me that it's worth looking 
into.
Robert Ramey