Medición de tiempos usando C

Juquiman
06 de Octubre del 2004
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

forastero
06 de Octubre del 2004
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.