Re: [Boost-bugs] [Boost C++ Libraries] #4307: basic_oarchive optimization

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