Pages

jueves, 24 de enero de 2013

Medir el tiempo de ejecución de una función en C

Para medir el tiempo de ejecución de una función en el lenguaje C, se puede utilizar la siguiente función:
#include <stdio.h>
#include <time.h>
 
int main(int argc, char *argv[])
{
    clock_t start = clock();
    /* Aquí el Código */
    printf("Tiempo transcurrido: %f", ((double)clock() - start) / CLOCKS_PER_SEC)
 
    return 0;
}
La forma de calcular el tiempo de CPU que toma una función es muy simple:
- Tomamos el valor del reloj antes de realizar la llamada (t_ini),
- Llamamos a la rutina en cuestión, y
- Tomamos nuevamente el valor del reloj (t_fin).
La diferencia entre t_fin - t_ini nos da el total de tiempo que tomó: 1) hacer la llamada a la rutina, 2) que esta haga su trabajo, 3) que devuelva el resultado.

18 comentarios:

Anónimo dijo...

hey violeta

Anónimo dijo...

jejeje ey juan carlos

Anónimo dijo...

jajaja no se ve tu coment.jejeje por salvaje

Unknown dijo...

amigo me sirvió bastante gracias

elvis dijo...

me sirvió full gracias

Anónimo dijo...

Muchísimas gracias ;u; ❤

Anónimo dijo...

Muy bueno! me sirve

Anónimo dijo...

El tiempo lo da en segundos?

Unknown dijo...

Como hago para que me lo de en nanosegundos?

David dijo...

La verdad es que es muy útil si quieres saber la eficacia de tu algoritmo, aunque que no parezca importar mucho es indispensable saber que tan complejo/complicado es un algoritmo al programarlo.

Paul dijo...

gracias, muy útil!

Unknown dijo...

me puedes ayudar realizar un algoritmo que calcule el tiempo de ejecución de un algoritmo en c#

Anónimo dijo...

interesante

Unknown dijo...

Muy buen ejemplo, gracias.

Unknown dijo...

excelente aporte

Anónimo dijo...

Como puedo medir tambien la cantidad???

Anónimo dijo...

Gracias Por El Aporte

David Monrea dijo...

AYUDA POR FAVOR, en el tiempo transcurrido me marca 0.00000 y no se si esté bien, estoy en C en IDE
void Seleccion(int A[N])
{
int p,i,m;
float t_ini, t_fin;
t_ini=clock();
//clock_t start = clock();
for (p=0;pA[i])
{
m=i;
}
}
Intercambia(&A[p],&A[m]);
}
t_fin=clock();
printf("\nEl tiempo transcurrido fue: %f\n "," segundos", ((t_fin - t_ini) / CLOCKS_PER_SEC));
}

Publicar un comentario