Я запускаю следующий код, используя Visual Studio 2008 с пакетом обновления 1 (SP1), в Windows Vista Business x64, четырехъядерный процессор, 8 ГБ оперативной памяти.
Если я создаю сборку выпуска и запускаю ее из командной строки, она сообщает о 31ms. Если я затем запустил его из среды IDE, используя F5, он сообщает 23353ms.
Вот как раз: (все сборки Win32)
- DEBUG, командная строка: 421мс
- DEBUG, из IDE: 24,570 м.
- RELEASE, командная строка: 31 мс
- RELEASE, из 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";
}
