Analysis of abstraction penalty and MSVC
I've posted another analysis - this time for the stepanov abstraction penalty test compiled with MSVC 2008 and 2005. Here we compare two releases of a single brand of compiler to look at the code generation improvements and regressions.
Comments
I find the VS2008 performance drop (from VS2005) surprising, since I don't think the changes in the compiler itself where so big.
Where the _SECURE_SCL macros disabled? They are on by default in VS2008 [http://msdn.microsoft.com/en-us/library/aa985965(VS.80).aspx]
[ The slowdown due to _SECURE_SCL would only be an issue if this source used the STL containers, and it does not. Later tests will include STL usage and show the _SECURE_SCL slowdown quite clearly. - ccox ]
Posted by: Mihai | July 21, 2008 11:33 AM
I actually observed the same drop in performance when using the MSVC2008 compiler when I evaluated it.
Your benchmark suite is really helping understand why this compiler was reporting performance similar to the MSVC2003 and close to 20% slower for some tests than the same code compiled with MSVC2005.
The application i tested it with is a very large analytics library that can be described as heavily templated (with large usage of the STL (yes _SECURE_SCL was switched off) and at certain places some deep abstraction levels can be found.
Posted by: Fabien Hure | July 26, 2008 04:19 AM