Аппаратный таймер в C на Windows - PullRequest
0 голосов
/ 22 октября 2018

Как реализовать аппаратный таймер на ОС Windows.Мне нужно измерять вычисления в миллисекундах и наносекундах.

for (i=0;i<1024;i++){
  //start timer
  //computations
  //end timer
  //printf result(end - start)
}

1 Ответ

0 голосов
/ 22 октября 2018

Попробуйте использовать QueryPerformanceFrequency и QueryPerformanceCounter для получения времени с точностью до миллисекунды:

LARGE_INTEGER cpu_khz, start_time, end_time;  
QueryPerformanceFrequency(&cpu_khz);
for (i=0;i<1024;i++) {
  QueryPerformanceCounter(&start_time); 
  // computations
  QueryPerformanceCounter(&end_time); 
  double delta_time = (start_time.QuadPart-end_time.QuadPart) / (double)cpu_khz.QuadPart;
  printf("took %.3f seconds", delta_time);
}
...