
on Tue Dec 27 2011, Brian Wood <woodbrian77-AT-gmail.com> wrote:
I've recently updated a page -- http://webEbenezer.net/comparison.html comparing results obtained using Boost Serialization (1.48) and the C++ Middleware Writer (1.13) on both Linux and Windows7.
There's an archive that has all the test files mentioned on that page here -- http://webEbenezer.net/comp/tests.tar.bz2 . In order to build the tests, you would need to build the Boost Serialization library and an Ebenezer library yourself. There's an archive on this page that has the Ebenezer library -- http://webEbenezer.net/build_integration.html .
To summarize the results, the Boost versions range from 1.1 to 3 times slower than the Ebenezer versions. And the sizes of the Boost executables range from portly to obese compared to functionally equivalent Ebenezer executables.
Comments on the how to improve the tests/process/etc. are welcome.
A few: 1. The claim that you provide "full generation of marshalling functions" is a little hard to swallow. In principle, it's impossible to know based on a class declaration what to serialize, and how to serialize it. 2. If you are going to compare yourself to Boost.Serialization, it would be a good idea to replicate all of that library's tests with your own system, to demonstrate that you cover the same expressive range. It's usually very easy to build something that beats benchmarks of a more-general system. 3. That "our approach writes marshalling functions based on the content of the types involved" does not explain how you get past the private member access barrier. The only legal technique I've seen for that is at https://gist.github.com/1528856, and Boost.Serialization should probably have support for that approach. -- Dave Abrahams BoostPro Computing http://www.boostpro.com