|
Try Clang too while you're at it.
Now not to defend MSVC too much, but the codegen doesn't make as angry as it used to.
|
|
|
|
|
clang is a very fast compiler, but the code it creates not that fast... (again, not first hand experience with that)
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
You're right.
They should be immensely proud that it only took them ten years to make it "not so bad".
I wanna be a eunuchs developer! Pass me a bread knife!
|
|
|
|
|
pictures or it didn't happen!
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
How I handle VC++...[^]
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Stop subjecting yourself the repeated pain and disappointments.
Join that VB6 crowd (the unwashed). No more surprises.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you are seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|
|
Be careful what you ask for.
cheers
Chris Maunder
|
|
|
|
|
Forsooth!
#SupportHeForShe
Government can give you nothing but what it takes from somebody else. A government big enough to give you everything you want is big enough to take everything you've got, including your freedom.-Ezra Taft Benson
You must accept 1 of 2 basic premises: Either we are alone in the universe or we are not alone. Either way, the implications are staggering!-Wernher von Braun
|
|
|
|
|
In what way ? did you forget to build in RELEASE, it is a widely known fact that the DEBUG code is really slow.
Do you have particular instances where it differs that much ?
I'd rather be phishing!
|
|
|
|
|
Maximilien wrote: it is a widely known fact that the DEBUG code is really slow.
Jeremy Falcon
|
|
|
|
|
Not only I used release as base, but also configured a lot of optimizations to gain more speed...
On old 32 bit CPU the result is more than 200%
On newer 32 bit CPU it is about 160%
On 8 core i7 it is still 140%
The problem is that I can not tell the compiler to use the most sophisticated command sets the CPU has and can help my (not really mine, but I'm learning it) code (intensive calculations)
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Do you know how well gcc compares to icc, just out of curiosity?
Jeremy Falcon
|
|
|
|
|
I didn't do test of my own with icc, but what I saw from others gcc a bit faster (2%-4%) but not always...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Cool. Just curious. Thanks.
Jeremy Falcon
|
|
|
|
|
In 2012, I did extensive testing with icc. It was consistently faster than other compilers except for a few times when it was a total fail, which made it not worth it. I haven't even bothered to see how C++14/17 compliant it's become since.
|
|
|
|
|
Cool. I remember hearing that too, but since I've never used it, it's nice to hear it from folks that have.
Jeremy Falcon
|
|
|
|
|
It has AVX2 support, surely you have nothing newer than that?
edit: i7 doesn't mean anything by the way. That's just marketing numerology.
|
|
|
|
|
And I turned on that one with no result I can see... On gcc I used sse3 flag and it made the code fly... using sse2 on VC++ had no effect whatsoever...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Auto vectorisation is unreliable. In GCC too.
Even if it gets better it still shouldn't be relied on, because it's too easy to accidentally cause a performance regression (making a trivial change can devectorize a whole loop).
|
|
|
|
|
I do not rely on, but use it and check it...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Sure. Don't be so disappointed then. It's just a free extra, for code that doesn't matter but it can't hurt to have it be a little faster. It shouldn't make any real difference unless the code is broken. Anything that matters already uses intrinsics anyway.
|
|
|
|
|
VC++ is a fine compiler - maybe you havent messed with any other.
Search for some useful additional library like Boost. I read that some Intel or AMD code is available.
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
I work extensively with VC++, GCC and Clang. Before GCC 6.x was released, I found that VC++ had a clear lead and that both were better than Clang. Right now, it's about even with Clang still trailing (what happened to those guys?)
(EDIT: one big improvement Microsoft is allegedly working on is to massively speed up streams, but that's a standard library implementation. Hopefully, other standard library implementers will follow suit.)
modified 21-Sep-16 18:38pm.
|
|
|
|
|
You probably talking about the compilation time... I'm about the performance of the result...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
I'm talking about the entire thing, including performance of compiled code and C++11/14/17 conformance. In contrast, it's extremely clear that you are focusing on a tiny subset of performance in extremely specific circumstances.
|
|
|
|