Измерить время выполнения алгоритма? Всем привет!
Подскажите, плиз, как замерить время выполнения алгоритма на Си под Linux?
На текущий момент, использую библиотеку time.hclock_t startClock, endClock;
startClock = clock();
//Код
endClock = clock();
diff = difftime(endClock, startClock);
Но если операций слишком мало, всегда на выходе получаю 0.
Хотелось бы что-нибудь поточнее, как например, в Java System.nanoTime().

21 Авг 2019 в 06:57
206 +1
1
Ответы
1

Для более точного измерения времени выполнения алгоритма на C под Linux, вы можете использовать функцию gettimeofday() из библиотеки sys/time.h. Вот пример кода:

#include <stdio.h>
#include <sys/time.h>
int main() {
struct timeval start, end;
long diff;
gettimeofday(&start, NULL);
// Ваш код
gettimeofday(&end, NULL);
diff = ((end.tv_sec - start.tv_sec) * 1000000L + end.tv_usec - start.tv_usec) / 1000;
printf("Time taken: %ld milliseconds\n", diff);
return 0;
}

Этот код измеряет время выполнения кода в миллисекундах. Вам также нужно будет включить заголовочный файл sys/time.h и скомпилировать программу с опцией -lrt (для библиотеки librt).

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир