C ++编译器之间的一般性能差异

时间:2014-07-23 13:57:43

标签: c++ visual-studio-2010 visual-studio visual-studio-2012 compiler-construction

我最近开始学习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中查看和更改它??

由于

0 个答案:

没有答案