help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Amazing Performance Difference between vec[] and iterators


From: Paulo Matos
Subject: Amazing Performance Difference between vec[] and iterators
Date: 11 Jul 2006 12:40:36 -0700
User-agent: G2/0.2

Hi all,

I've wanted to know if there was any performance difference between
using:
for(vector<int>::const_iterator it = v.begin(); it != v.end(); ++it)

and

for(unsigned int k = 0; k < v.size(); ++k)

and it seems there is with gcc 4.1.1, using -O3, the later is almost
two times slower.
The program is at:
http://sat.inesc-id.pt/~pocm/archive/vec.cc
Then do:
$ g++ -O3 vec.cc -o vec-iter -DITER
$ g++ -O3 vec.cc -o vec

I got these times:
$ time ./vec
5030 elements in array.
sum: 27665

real    0m7.123s
user    0m7.108s
sys     0m0.008s

$ time ./vec-iter
5030 elements in array.
sum: 27665

real    0m4.699s
user    0m4.672s
sys     0m0.020s

Any comments on these results? They don't seem intuitive to me. Why the
difference?

Cheers,

Paulo Matos



reply via email to

[Prev in Thread] Current Thread [Next in Thread]