
brass goowy wrote:
David Abrahams writes:
I have a bit of a beef with the efficient part at least in places -- http://webEbenezer.net/comparison.html. Preliminary results on Boost 1.35 and MSVC9 show only minor differences from the 1.34.1 and MSVC8
I did take a cursory look at above page which show a performance difference in two simple examples. There are a couple of problems with these small tests. The serialization library defaults for versioning and object tracking are used. Versioning provides the facitly for remaining backward compatibility with older archives. Tracking is used to permit reloading of pointers and to elmininate redudency in archives. Both of these features have a cost. Looking at the "ebenezer" code it doesn't look like these thinngs are supported. So I'm skeptical of the utility of this particula comparison. It might a little more useful to experiment with the boost serialization traits to turn off features for these types so that timings might be more comparable. But still I think, that such a limited set of tests can provide only limited insight. Never the less, I was interested in these results when you first posted them - and I continue to be. The serializaiton libray was designed to take maximal advantage of compile time code generation. The basic sequence of operations should be the same in both programs, So I would hope that there be little difference in results of tests such as yours. Any significant differences should be attributable to one or more of the following: a) Complier abstraction penalty b) test artifacts - e.g. tests running different feature sets. c) suboptimal implemenations of serialization for certain types c) bugs in the code. From time to time these have been discovered and fixed. Finally, we are slowly making progress in implementing profiling tests which we hope will isolate any performance bottlenecks. Robert Ramey