« Another Analysis Example | Main | Second release »

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.

Example Analysis

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 ]

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.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)