Subject: Re: [boost] [xpressive] Performance Tuning?
From: Edward Grace (ej.grace_at_[hidden])
Date: 2009-07-31 13:29:55
>>> I ran the Visual Studio build again, still got about the same as
>>> I got
>>> in my last email, so yea, Visual Studio is a lot better on templates
>>> then GCC is. I wonder why GCC performs so much worse...
>> Indeed - an open issue. Perhaps I will play with some other
>> options (march
>> etc.) to see if there's something I've overlooked. Well, I have
>> to say I'm
>> gaining more respect for the MS compiler - I last used it a very
>> long time
>> ago, back then it was awful!
> *scratches head*
> I must be missing something very obvious, but I do not see how your
> and OvermindDL benchmarks can support this conclusion: as far as I can
> tell, you two never compared the two compilers directly, what you are
> seeing is that on GCC the speed up of qi_parse over atoi/strtol is
> less than that of MSVC, but this tells nothing about the absolute
> performance of the two compilers on this test (i.e. you never showed
> any absolute times).
As you can probably guess I don't really like absolute times. It is
simple enough to try and do a cross comparison in a similar manner to
the way relative values are currently calculated - it will just need
a bit of tweaking, I'll give that some thought.
> For what we know the gcc atoi might just be faster than msvc one. And
> in fact a quick google search brings these two pages:
> http://tinyurl.com/mqa5yl [msvc8 atoi performance is 58% of that
> of msvc6]
> http://tinyurl.com/mzyw66 [thread containing a comparison of atoi
> functions of different languages and compilers, in particular it seems
> that MSVC atoi is really 2 times slower than gcc atoi]
> A slow atoi on MSVC would explain such a difference in the tests,
> assuming that the ability of both compilers to optimize qi_parse is
> about the same.
Ah, good point - mea culpa! This is where my (diminishing) ignorance
of computers gets highlighted - I was under the impression that the
standard library calls would be calling the same underlying things
for both compilers - clearly I'm mistaken.
Thanks for the comment. My code was not originally intended for
benchmarking compilers / platforms - it's just getting that way!
"No more boom and bust." -- Dr. J. G. Brown, 1997
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk