I have been evaluating the latest Intel C++ compiler with a view to improving our COM business objects.
After having successfully built all the necessary DLLs I proceeded to performance test them in comparison
to the Microsoft compiled versions. The tests involved my own benchmarking code as well as running the application
through an evaluation of Intel VTune Analyzer.
Both benchmark tests on my development machine (which is loaded down with the usual corporate AV / big brother apps / Outlook / etc. ) showed between a 15% and 25% improvement on performance.
However, when I then did the same test on a vanilla (i.e. clean Windows install) machine (of the same chipset / processor flavour) I saw no improvement whatsoever..
Looking at the VTune results I notice on my dev machine I noticed the Clockticks % was around 50% (i.e. a lot of other apps were contending for slices), whereas on the plain vanilla machine the Clockticks % was always >=95%.
My only conclusion was that on a heavily loaded machine the Intel generated machine code is more efficient (thus quicker). One more strange issue is the VTune Instructions retired numbers for the Microsoft and the Intel compiled code were the SAME on the vanilla machine; I was under the impression that the two compilers would generate different enough instructions / opcodes to show a marked difference in the instructions retired figures..
Help me resolve all this confusion :-)