Medición de tiempos usando C
Estoy elaborando un código, en el que he de medir cuanto tiempo se emplea en realizar diversas tareas.
Utilizo la función clock
inicioSimulacion=clock();
...
...
...
...
...
finSimulacion=clock();
tiempo=(finSimulacion-inicioSimulacion)/(double)CLOCKS_PER_SEC;
Me da problemas ya que no me hace mediciones con demasiada precisión (orden de microsegundos) y una de las condiciones marcadas es la de que el código ha de seguir el estandar ANSI para poder ser ejecutado tanto en linux como en windows.
¿Alguien me puede decir de alguna función con la que poder obtener dicha precisión?
Muchas gracias
Utilizo la función clock
inicioSimulacion=clock();
...
...
...
...
...
finSimulacion=clock();
tiempo=(finSimulacion-inicioSimulacion)/(double)CLOCKS_PER_SEC;
Me da problemas ya que no me hace mediciones con demasiada precisión (orden de microsegundos) y una de las condiciones marcadas es la de que el código ha de seguir el estandar ANSI para poder ser ejecutado tanto en linux como en windows.
¿Alguien me puede decir de alguna función con la que poder obtener dicha precisión?
Muchas gracias
Hola.
Yo también tuve problemas similares a los tuyos. Pero si quieres un estándar el C a "secas" no tiene (al menos que yo sepa) funciones que te den tiempos del orden de us (microsegundos). Una alternativa es coger las librerías de MPI (programación en paralelo), la cual tiene precisiones de al menos 1 us (si mal no recuerdo en un pentium 4 y AMD era de 0.25 us más o menos) y usar la función MPI_TIME() (creo que era este el nombre, ahora mismo no me acuerdo exactamente) de la misma manera que clock() de C.
Espero que lo que te dije te sirva de algo.
Un saludo.
Yo también tuve problemas similares a los tuyos. Pero si quieres un estándar el C a "secas" no tiene (al menos que yo sepa) funciones que te den tiempos del orden de us (microsegundos). Una alternativa es coger las librerías de MPI (programación en paralelo), la cual tiene precisiones de al menos 1 us (si mal no recuerdo en un pentium 4 y AMD era de 0.25 us más o menos) y usar la función MPI_TIME() (creo que era este el nombre, ahora mismo no me acuerdo exactamente) de la misma manera que clock() de C.
Espero que lo que te dije te sirva de algo.
Un saludo.
