我們正在使用Visual Studio 2005.我們正在考慮在發佈Visual Studio 2012之後升級到Visual Studio 2012。我在Visual Studio 2012 RC中試過這個小程序,並且驚訝地發現它的運行速度比在Visual Studio 2005中慢了2倍以上。在VS2012中,我使用了默認的發佈版本設置。對我來說,VS2005大約需要20ms,VS2012大約需要50ms。爲什麼它慢得多?小型程序在Visual Studio 2012與Visual Studio 2005相比要慢得多
#include <windows.h>
#include <deque>
using namespace std;
deque<int> d;
int main(int argc, char* argv[])
{
const int COUNT = 5000000;
timeBeginPeriod(1);
for (int i = 0; i < COUNT; ++i)
{
d.push_back(i);
}
double sum = 0;
DWORD start = timeGetTime();
for (int i = 0; i < COUNT; ++i)
{
sum += d[i];
}
printf("time=%dms\n", timeGetTime() - start);
printf("sum=%f\n", sum);
return 0;
}
機會是你沒有編譯它們以同樣的方式。 –
建議:如果使用或可能使用Visual C++標準庫,請勿使用'std :: deque'。它有[糟糕的性能特點。](http://stackoverflow.com/a/5607710/151292) –
目標代碼:x86與x64? – Naszta