我们正在使用 Visual Studio 2005。我们正在考虑在 Visual Studio 2012 发布后升级到它。我在 Visual Studio 2012 RC 中尝试了这个小程序,并惊讶地发现它的运行速度比在 Visual Studio 2005 中慢 2 倍以上。在 VS2012 中,我使用了默认的发布构建设置。对我来说,VS2005 大约需要 20ms,VS2012 大约需要 50ms。为什么会慢很多?
#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;
}