Измерение времени в миллионах или микросекундах на языке C

#c #windows-7

#c #windows-7

Вопрос:

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

Ответ №1:

Способ получить точные измерения времени — с помощью счетчиков производительности.

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

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644904(v=vs.85).aspx

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

 LARGE_INTEGER frequency;
LARGE_INTEGER start;
LARGE_INTEGER end;

//  Get the frequency
QueryPerformanceFrequency(amp;frequency);

//  Start timer
QueryPerformanceCounter(amp;start);

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


//  End timer
QueryPerformanceCounter(amp;end);

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

Вывод:

 sum = 499999999500000000
Seconds = 0.659352
  

Ответ №2: