Prev: compile time / run time - shift the borderline
Next: C++0x: Lambda, decltype, member function etc...
From: Brian on 5 Dec 2009 02:26 I've recently updated the performance section of a comparison between the Boost Serialization library and the C++ Middleware Writer -- http://webEbenezer.net/comparison.html#perf. The new tests were done on Fedora 12 and Windows Vista. The previous version of that file is here -- http://webEbenezer.net/comp138.html#perf. The most dramatic change occurred on Windows. Previously the Boost versions were around 2.7 times slower than the Ebenezer versions. Now they are between 3.7 and 4.0 times slower than the Ebenezer versions. I believe some of that difference is due to our switching from return codes to exceptions. I'm not sure why it shows up more on Windows than on Linux. Brian Wood http://webEbenezer.net -- [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ]
From: Mathias Gaunard on 6 Dec 2009 10:47 On 5 d�c, 20:26, Brian <c...(a)mailvault.com> wrote: > I believe some of that difference is due to > our switching from return codes to exceptions. I'm not sure why > it shows up more on Windows than on Linux. Probably because on Windows you use an ABI where exceptions are costly. -- [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ]
From: Brian on 12 Dec 2009 04:31
On Dec 6, 9:47 pm, Mathias Gaunard <loufo...(a)gmail.com> wrote: > On 5 d�c, 20:26,Brian<c...(a)mailvault.com> wrote: > > > I believe some of that difference is due to > > our switching from return codes to exceptions. I'm not sure why > > it shows up more onWindowsthan on Linux. > > Probably because onWindowsyou use an ABI where exceptions are costly. > Several hours ago I received an email from the Boost author asking for my help to build these tests on his machine. When I went to reproduce them on my machine, I realized a problem in my methodology. I had failed to erase the output file (on Windows) and the existence of the output file from a previous execution results in significantly better times than when the file doesn't exist. The test is about 50% slower when the file doesn't exist than when it does. So when I test more carefully I find that the Boost version is between 2.6 and 2.7 times slower than the Ebenezer version and I've updated this page to reflect that -- http://webEbenezer.net/comparison.html#perf. My apologies to Robert Ramey for some sloppy testing that resulted in a claim that was not accurate. On a side note, I have no idea why the existence of the output file from a previous execution has so little affect on the performance of the Boost version, but has such a large affect on the Ebenezer version. Brian Wood http://webEbenezer.net -- [ See http://www.gotw.ca/resources/clcm.htm for info about ] [ comp.lang.c++.moderated. First time posters: Do this! ] |