
I looked at your tests an concludes that all the differences cited were due to the fact that serialization library used the standard library stream for i/o while you're version uses more or less direct calls to windows os. Review of the disassembled code didn't reveal any significant difference in the serialization coding itself. Robert Ramey. Brian Wood wrote:
Robert Ramey writes:
It's not a question of the symbols. with MSVC 7.1 at least, Release mode optimization collapses all the inline template instantiations down to code which is no larger than one would write by hand. This can be verified by adding the debug symbols to the release mode and disassembling at the point where serialization is invoked. In MSVC the debug symbols are a separate file. The "code bloat" results from that fact that inline template code is not optimized by the comiler in Debug builds.
In the tests I've done on Windows Vista and MSVC++ 10 with -O2, executables built with release version of Boost Serialization are more than two times the size of executables built with Ebenezer Enterprises' approach. On Linux the stripped Boost executables are more than 4 times larger than their Ebenezer counterparts.
http://webEbenezer.net/comparison.html
Regards, Brian Wood http://www.webEbenezer.net (651) 251-9384
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users