Ответ в теме: Замерить время работы функции на С++

      Комментарии к записи Ответ в теме: Замерить время работы функции на С++ отключены

Главная Форумы Программирование Программирование на С++ Замерить время работы функции на С++ Ответ в теме: Замерить время работы функции на С++

#2971

Функция clock() возвращает количество тиков процессора, которое сделала именно ваша программа, т.е. если программа ожидает ввод данных пользователем, то она не работает (операционная система вытесняет процесс из очереди задач). Следовательно нельзя замерить время ожидания ввода при помощи функции clock() — хотя подход, который вы привели, идеально подходит если вы хотите сравнить два алгоритма, т.к. в этом случае меньшее влияние оказывает загруженность системы.

Определить количество секунд, которое выполняется программа можно с помощью функции time():

#include <stdio .h> 
#include <time .h> 

int main() {
  time_t start, end;
  
  time(&start);

  getchar(); 

  time(&end);
  
  double seconds = difftime(end, start);

  printf("The time: %f seconds\n", seconds);
}

Время при этом сохраняет с типом данных time_t — это целое число секунд, прошедшее с 1 января 1970 года. Функция difftime вычисляет разницу двух моментов времени. С помощью такого подхода вы сможете замерить время работы части программы, однако результат будет в секундах.