Hola a tod@s.
Sé que esto se ha preguntado -más o menos-, pero mi duda va más allá.
Estoy experimentando con algoritmos de ordenación, y para ver las diferencias de rendimiento necesito medir el tiempo de ejecución de dos versiones del algoritmo -con y sin la optimización a probar-. Estoy usando la función
clock(), más o menos así:
===================================
#include <time.h>
float dif;
clock_t inicio, fin;
inicio = clock();
/* Aquí el algoritmo a cronometrar */
fin = clock();
dif = (fin - inicio) / CLOCKS_PER_SEC;
printf("\n%f\n", dif);
===================================
El problema es que, por los resultados que obtengo, parece que la precisión de esta función sea tan sólo de +/- 1 segundo... y necesitaría
bastante más que eso. Me extrañaría que no hubiera forma, porque si no recuerdo mal, en Visual Basic era relativamente fácil conseguir precisión de milisegundos con una sencilla llamada a la API de Windows, y aún más precisión con otra función API no mucho más compleja.
Pero ahora estoy en Linux, programando en C, y las únicas referencias que he conseguido encontrar a este tema me remiten al uso de clock().
Un saludo, y gracias por adelantado.
P.D.: Dado el planteamiento que estoy utilizando, no me serviría de mucho simplemente repetir X veces cada proceso y luego dividir el tiempo total por X; lo he pensado, pero me gustaría partir de todos modos de una precisión mayor.