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:

  1. jajaja no se ve tu coment.jejeje por salvaje

    ResponderEliminar
  2. Muchísimas gracias ;u; ❤

    ResponderEliminar
  3. El tiempo lo da en segundos?

    ResponderEliminar
  4. Como hago para que me lo de en nanosegundos?

    ResponderEliminar
  5. 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.

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

    ResponderEliminar
  7. Como puedo medir tambien la cantidad???

    ResponderEliminar
  8. Gracias Por El Aporte

    ResponderEliminar
  9. 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));
    }

    ResponderEliminar