我最近开始学习C ++,现在我可以自己编写和运行基本的c ++程序了。
然而,我不明白的一件事是,为什么不同编译器的运行速度差异很大..
例如,我有这段代码:
class MyObject {
public:
MyObject(string Str) : m_Str(Str) { }
string m_Str;
};
int main() {
chrono::time_point<chrono::system_clock> tstart = chrono::system_clock::now();
vector<MyObject> VectorOfObjects;
for (int i=0; i<10000; i++) {
MyObject x("test");
VectorOfObjects.push_back(x);
}
chrono::time_point<chrono::system_clock> tend = chrono::system_clock::now();
chrono::duration<double> tt = tend-tstart;
cout << "Execution Time: " << tt.count()*1000 << " Milliseconds\n" << endl;
return 0;
}
现在,当我在Visual Studio 2012中构建并运行此代码时,打印结果为:
Execution Time: 989 Milliseconds
但是,当我在Ideone(Link)中编译并运行完全相同的代码时,
结果只是
Execution Time: 1.65675 Milliseconds
所以基本上,在Visual Studio中运行几乎要慢1000倍!!!
作为编程的新手,我不明白为什么速度必须有这么大的差异。
所以我的问题是,
造成这种差异的原因是什么?
此外,如果这是由不同的编译器设置引起的,我如何在Visual Studio中查看和更改它??
由于