Измерить время выполнения алгоритма? Всем привет! Подскажите, плиз, как замерить время выполнения алгоритма на Си под Linux? На текущий момент, использую библиотеку time.hclock_t startClock, endClock; startClock = clock(); //Код endClock = clock(); diff = difftime(endClock, startClock); Но если операций слишком мало, всегда на выходе получаю 0. Хотелось бы что-нибудь поточнее, как например, в Java System.nanoTime().
Для более точного измерения времени выполнения алгоритма на C под Linux, вы можете использовать функцию gettimeofday() из библиотеки sys/time.h. Вот пример кода:
Этот код измеряет время выполнения кода в миллисекундах. Вам также нужно будет включить заголовочный файл sys/time.h и скомпилировать программу с опцией -lrt (для библиотеки librt).
Для более точного измерения времени выполнения алгоритма на 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).