On Apr 30, 4:32 pm, StephQ <askmeo...@mailinator.com> wrote:
Have you turned off checked iterators? (see:http://www.codeproject.com/vcpp/stl/checkediterators.asp)
Thank you for very usefull suggestion. I didn't know that checked
iterators were turned on even in release mode in vc8 by default.
The new results (with checked iterators turned off) are:
Microsoft:
vector: 94
array: 94
stupid: 94
ptr: 141
ptr: 96
Intel:
vector: 141
array: 141 //62 if I eanble SSE2
stupid: 141 //62 if I enable SSE2 and disable exception handling
ptr: 141
ptr: 140
The situation is now much better.
Howere is seems that the Microsofr compiler is still doing 35% better
in all the situations except the "vector iterator" one.
Do you have any other suggestion to try?
I know nothing of lowe level instructions, but if I post the
"assembler - like" code here would it be of any help for you?
Thank you
Cheers
StephQ
I reply to myself just to tell you that I don't mind investigating any
more these issues.
I ran the test using doubles instead of int and the results are very
similar, with the microsoft compiler having something like 3% more
performance.
However the Stepanov Abstraction test favours the intel compiler by a
large margin.
Abstraction penalty with Intel:
0.85
0.68 with sse2
With Microsoft:
1.11
A curiosity..... how is it possible to get an abstraction penalty
below 1 ?
a factor of ten is quite normal). So you should know how to e.g. clear
(or fill) the cache as appropriate.
Writing a good benchmark is not easy.