我正在运行以下代码,使用Visual Studio 2008 SP1,在Windows Vista Business x64上,四核机器,8GB内存。
如果我构建一个发布版本,并从命令行运行它,它会报告31ms。如果我使用F5从IDE启动它,则会报告23353ms。
以下是时间:(所有Win32版本)
- DEBUG,命令行:421ms - DEBUG,从IDE:24,570ms - RELEASE,命令行:31ms - RELEASE,从IDE:23,353ms
代码:
如果我构建一个发布版本,并从命令行运行它,它会报告31ms。如果我使用F5从IDE启动它,则会报告23353ms。
以下是时间:(所有Win32版本)
- DEBUG,命令行:421ms - DEBUG,从IDE:24,570ms - RELEASE,命令行:31ms - RELEASE,从IDE:23,353ms
代码:
#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";
}