Updated marshalling performance results

C

coal

Shalom

Recently I updated the Windows portion of a page that compares
results from the Boost Serialization library and the C++ Middleware
Writer -- www.webEbenezer.net/comparison.html.

The updated tests use MSVC 9.0, Windows XP and Boost 1.37. The
new results are somewhat more in favor of our approach than
results using MSVC 8.0, Windows XP and Boost 1.34 --
www.webEbenezer.net/prevcomp.html. I hope to further update
and add to the results in the future.


Brian Wood
Ebenezer Enterprises
www.webEbenezer.net

If you haven't read anything by Jonathan Katz,
http://wuphys.wustl.edu/~katz, I recommend it.
 
Z

zr

Shalom

Recently I updated the Windows portion of a page that compares
results from the Boost Serialization library and the C++ Middleware
Writer --www.webEbenezer.net/comparison.html.

The updated tests use MSVC 9.0, Windows XP and Boost 1.37.  The
new results are somewhat more in favor of our approach than
results using MSVC 8.0, Windows XP and Boost 1.34 --www.webEbenezer.net/prevcomp.html.  I hope to further update
and add to the results in the future.

Brian Wood
Ebenezer Enterpriseswww.webEbenezer.net

If you haven't read anything by Jonathan Katz,http://wuphys.wustl.edu/~katz, I recommend it.

Do you have any examples of real-world applications that show that
serialization has a significant impact on overall performance?
 
C

coal

Do you have any examples of real-world applications that show that
serialization has a significant impact on overall performance?

No. I know though that IT budgets are tight and programmers are
expected to do more with less.


Brian Wood
Ebenezer Enterprises
www.webEbenezer.net
 
P

peter koch

No.  I know though that IT budgets are tight and programmers are
expected to do more with less.

That last sentence made me curious, so I just had a glimpse of the
sourcecode. Correct me if I'm wrong but it looks as if the code
required to serialise something gets much longer if you use the
Ebenezer version. Also, there are differences as to how stuff is
archived: it seems that boost uses standard ofstreams whereas you use
C-type output (causing your program to not be exception safe).
If I am correct, I fail to see the rationale behind your claim that
ebenezer-serialisation is so much more efficient programmerwise (as
you must write more code), and I also am sceptical wrt your claim that
ebenezer-serialisation is so much more efficient performancewise (as
we all know that C++ iostream I/O is notoriously slower that C IO).

/Peter
 
C

coal

That last sentence made me curious, so I just had a glimpse of the
sourcecode. Correct me if I'm wrong but it looks as if the code
required to serialise something gets much longer if you use the
Ebenezer version. Also, there are differences as to how stuff is
archived: it seems that boost uses standard ofstreams whereas you use
C-type output (causing your program to not be exception safe).
If I am correct, I fail to see the rationale behind your claim that
ebenezer-serialisation is so much more efficient programmerwise (as
you must write more code),

It seems like you may have missed that the file Msgs.hh was generated
by the website. I think the two approaches are very close, in these
tests at least, in terms of how much code is hand written.
and I also am sceptical wrt your claim that
ebenezer-serialisation is so much more efficient performancewise (as
we all know that C++ iostream I/O is notoriously slower that C IO).

That may be a/the cause of the difference. I've read claims
that C++ iostream implementations are no longer slower than C IO.
Anyway, assuming that you're right about that, since the Boost
Serialization library uses the iostream library it seems to be
inefficient, on the most popular platforms, as a result.

A few other notes related to efficiency... The Boost
Serialization library doesn't have an option to use
hinted insert on the standard containers -- set, multiset, map,
multimap. I believe the Boost MultiIndex library defaults
to hinted inserts in it's internal serialization code when there's
a relevant index. That is probably the correct default, but in
my opinion it should be possible to either enable or disable that
functionality. Also the Boost Serialization library doesn't
support the Boost Range library. We do. (Well, we do more so
than the Boost Serialization library, but not completely.)
This affects efficiency, since with the Boost Serialization library
you would have to populate a container based on a range before
marshalling data.


Brian Wood
Ebenezer Enterprises
www.webEbenezer.net
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top