【发布时间】:2009-06-29 20:29:06
【问题描述】:
我正在使用 Visual Studio 2008 SP1 在 Windows Vista Business x64、四核机器、8gb 内存上运行以下代码。
如果我构建一个发布版本,并从命令行运行它,它会报告 31 毫秒。如果我然后从 IDE 启动它,使用 F5,它会报告 23353 毫秒。
以下是时间:(所有 Win32 版本)
- 调试,命令行:421ms
- 调试,来自 IDE:24,570 毫秒
- 发布,命令行:31 毫秒
- 发布,来自 IDE:23,353 毫秒
代码:
#include <windows.h>
#include <iostream>
#include <set>
#include <algorithm>
using namespace std;
int runIntersectionTestAlgo()
{
set<int> set1;
set<int> set2;
set<int> intersection;
// Create 100,000 values for set1
for ( int i = 0; i < 100000; i++ )
{
int value = 1000000000 + i;
set1.insert(value);
}
// Create 1,000 values for set2
for ( int i = 0; i < 1000; i++ )
{
int random = rand() % 200000 + 1;
random *= 10;
int value = 1000000000 + random;
set2.insert(value);
}
set_intersection(set1.begin(),set1.end(), set2.begin(), set2.end(), inserter(intersection, intersection.end()));
return intersection.size();
}
int main(){
DWORD start = GetTickCount();
runIntersectionTestAlgo();
DWORD span = GetTickCount() - start;
std::cout << span << " milliseconds\n";
}
【问题讨论】:
-
您可能想查看有关 Markdown 的帮助,以便更好地格式化代码
-
是的,老实说,我发现它真的很难合作。 :) 我点击了“代码”按钮并粘贴了我的代码,它真的毁了它。
-
先粘贴代码,然后全选,点击代码按钮。 :)
-
它并不像你说的那么简单。 :)
-
这个问题其实不用代码就可以解决的:)但前提是你先体验过。
标签: c++ visual-studio performance ide stl