|
Boost : |
From: Martin Slater (mslater_at_[hidden])
Date: 2005-11-10 05:17:37
>>Some recent tests I've done that compare Ebenezer Enterprises
>>and Boost.serialization's performance show the
>>Boost.serialization approach to be 7 to 9 times slower than the
>>Ebenezer Enterprises approach. I'm using Linux 2.6.12,
>>gcc 4.0.2 (with -O3) and a Boost.serialization library from the
>>release tree. A test that compared the times to serialize/send
>>a list<int> took 7.4 times longer with Boost than Ebenezer.
>>I timed the following
>>Boost:
>> oArch & lst; // oArch is a binary_oarchive
>>
>>Ebenezer:
>> msgs.Send(buffer, lst); // In order to compare apples to apples,
>> // I removed a section of code at the end
>>
>> // of the Send function that flushes the
>>buffer.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This seems wrong to me, comparing library to library as it is written
and as the user see's it would be much more interesting and to me makes
this test pointless. If you can really just remove the flush then it
probably shouldnt be there in the first place or configurable by the
user on an archive by archive basis.
>>
>>
>>In a second test I added a deque of int...
>>Boost:
>> oArch & lst;
>> oArch & dq; // std::deque<int> dq;
>>
>>Ebenezer:
>> msgs.Send(buffer, lst, dq);
>>
>>In this case Boost took 9.1 times longer than Ebenezer Enterprises
>>approach. If you want to run these tests with other compilers I
>>think that would be helpful. I've been warned not to put too much
>>emphasis on numbers from gcc.
>>
It would be interesting to see what the results are with a vanilla
version of your library as well as a feature by feature comparision to
see if you really are comparing apples to apples.
Martin
-- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.362 / Virus Database: 267.12.8/165 - Release Date: 9/11/2005
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk