it tried this code in both version visual c++ 2010 and visual studio 11 developer preview and the i was shoked by the result vs 11 TIME = 100 * vs2010 TIME //______________________________________________#include<iostream>#include<unordered_map>#include<Windows.h>using namespace std;double DoubleRand(){ return (double(rand())*double(rand())*double(rand())+double(rand())*double(rand())*double(rand())+double(rand())*double(rand())*double(rand()))/(double(rand())*double(rand())*double(rand())+double(rand())*double(rand())*double(rand()));}void print(double x){ cout <<x<<endl;} int main(){ int _time=GetTickCount(); srand(_time); int tableLenght=1000000; unordered_map<double ,int> maptab; double * tab=new double[tableLenght]; for (int i = 0; i <tableLenght ; i++) { tab[i]=DoubleRand(); } for (int i = 0; i <tableLenght ; i++) { maptab[tab[i]]=i; } double somme=0; for (int i = 0; i < 10; i++) { for (int k = 0; k < tableLenght; k++) { somme+=maptab[tab[k]]; } } int somme2=0; for (int i = 0; i < tableLenght; i++) { somme2 += i; } print(maptab.size()); print(somme); print(somme2*10); print(GetTickCount()- _time ); system("pause");}
Visual Studio/Team Foundation Server/.NET Framework Tooling version
Steps to reproduce
Product Language
Operating System
Operating System Language
Actual results
Expected results