Subject: Re: [Boost-bugs] [Boost C++ Libraries] #4307: basic_oarchive optimization
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2010-06-06 22:03:57
#4307: basic_oarchive optimization
--------------------------+-------------------------------------------------
Reporter: anonymous | Owner: ramey
Type: Patches | Status: new
Milestone: Boost 1.43.0 | Component: serialization
Version: Boost 1.44.0 | Severity: Optimization
Keywords: |
--------------------------+-------------------------------------------------
Comment(by anonymous):
I've take a very quick look at this.
a) Looks very promising to me.
b) TODO - this part needs to be looked at. I made singleton with the idea
that it only be called prior to main(..) invocation. During the loading
of DLLS this is not true. So in fact the serialization library is only
thread safe if one avoids loading/unloading DLLS while simultaneasly
saving/loading an archive. This is my compromise to avoid requiring
thread syncronization inside the library.
c) The above begs the question: what about basic_iarchive? Can it be
improved as well?
d) What is the status of Autobuffer? is incorporation in to boost expected
to be soon?. If not, I would like to see a simple web page documenting it
similar to BOOST_SERIALIZATION_STRONG_TYPE,
BOOST_SERIALIZATION_STATE_SAVER, etc. If/when it get's into boost, this
can be dropped/moved.
e) Running all the tests is indispensable for something like this. My
procedure is:
1) start with boost release
2) include patches in serialization library
3) cd boostroot/libs/serialization/test
4) ../../../tools/regression/src/library_status.sh (or.bat)
toolset=msvc-7.1 &
This should create an html table with all the test results.
f) Finally, it would be interesting if there were some preformance results
for the patch. It's pretty obvious to me that this would result in
improved performance, so it's not strictly necessary if it turned out to
be a lot of work. You might look at
boostroot/libs/serialization/performance for an example.
g) it seems you rely on the presumption that every class_id/object_id is
assigned in sequence. This seems correct to me. But I'm a little
concerned if I had a reason for using std::set in the first place. I
don't remember now if I did. You might want to include some "assert" if
there is some assumption you're relying on that isn't totally obvious.
Again, looks very promising to me. I can't test it now as I'm bogged down
in fixing some extremely arcane issue related to versioning.
Robert Ramey
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/4307#comment:2> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:03 UTC