Измерение времени в мили или микросекундах на языке C - PullRequest
3 голосов
/ 11 ноября 2011

Я использую Microsoft Visual Studio 2010. Я хотел измерить время в микросекундах на языке C на платформе Windows 7. Как я могу это сделать.

Ответы [ 2 ]

3 голосов
/ 11 ноября 2011

Способ получения точных измерений времени - счетчики производительности.

В Windows вы можете использовать QueryPerformanceCounter() и QueryPerformanceFrequency():

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904%28v=vs.85%29.aspx

РЕДАКТИРОВАТЬ: Вот простой пример, который измеряет время, необходимое для суммирования от 0 до 1000000000:

LARGE_INTEGER frequency;
LARGE_INTEGER start;
LARGE_INTEGER end;

//  Get the frequency
QueryPerformanceFrequency(&frequency);

//  Start timer
QueryPerformanceCounter(&start);

//  Do some work
__int64 sum = 0;
int c;
for (c = 0; c < 1000000000; c++){
    sum += c;
}
printf("sum = %lld\n",sum);


//  End timer
QueryPerformanceCounter(&end);

//  Print Difference
double duration = (double)(end.QuadPart - start.QuadPart) / frequency.QuadPart;
printf("Seconds = %f\n",duration);

Выход:

sum = 499999999500000000
Seconds = 0.659352
2 голосов
/ 11 ноября 2011
...