Originariamente inviato da GliderKite
[...]
Che compilatore hai usato, e con che opzioni di ottimizzazione? Perché lì si gioca tantissimo, dato che basta che il compilatore non effettui l'inlining di qualche metodo STL e le performance crollano.
Questo perché i miei risultati sono piuttosto diversi, e non credo dipenda tanto dal processore (nel senso, il valore effettivo dipende sicuramente da processore e RAM, ma le differenze percentuali tra i vari metodi dovrebbero restare più o meno costanti); non mi spiego perché un vector dovrebbe essere più lento di una normale new se usato con resize+operator[], dato che in fin dei conti la resize iniziale non è altro che una new+l'inizializzazione di default, e operator[] non è altro che una somma di puntatori che dovrebbe essere ottimizzata inline.

Aggiungo: per ottenere dei risultati precisi ti conviene usare QueryPerformanceCounter ed effettuare più volte ogni test, estraendo alla fine media e deviazione standard; in questa maniera sei sicuro che un eventuale ritardo casuale dovuto a cache miss/page fault (sia che riguardi i dati in memoria, sia che riguardi il codice dell'eseguibile) sia ammortizzato nel calcolo della media, ottenendo risultati realistici.
Se hai già installato boost e hai voglia di riscrivere la classe Cronometer magari fai qualche prova con il mio codice e posta i risultati che saltano fuori.