這段代碼在我的VS2012中大約需要20秒,但在G ++中只需要1.x秒。 都在win8 x64和編譯與默認選項。爲什麼在VC++中list :: push_back比g ++慢得多
list<double> items;
for(int i=0;i<10000000;i++){
items.push_back(rand());
}
cout<<"done"<<endl;
這是關於內存分配的東西嗎?在我的機器上使用VC++輸出後,釋放內存需要3〜5秒鐘,並且在我的firend(win7 x64)中甚至超過1分鐘。
我不確定G ++的默認構建配置是什麼,但是對於Visual Studio它是** DEBUG **,並且您不想比較調試構建的性能 – emartel
如何使用VS中的Release進行編譯以及-O2 gcc選項? – nhahtdh
您是否嘗試在循環之前執行'items.reserve(10000000)'? – 2012-11-27 15:45:26