Para calcular el tiempo que tarda un proceso, podemos usar la función clock() que está disponible time.h . Podemos llamar a la función de reloj al principio y al final del código para el que medimos el tiempo, restar los valores y luego dividir por CLOCKS_PER_SEC (la cantidad de tics de reloj por segundo) para obtener el tiempo del procesador, como sigue.
#include <time.h> clock_t start, end; double cpu_time_used; start = clock(); ... /* Do the work. */ end = clock(); cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
A continuación se muestra un programa C de muestra en el que medimos el tiempo que toma fun(). La función fun() espera que se presione la tecla enter para finalizar.
C
/* Program to demonstrate time taken by function fun() */ #include <stdio.h> #include <time.h> // A function that terminates when enter key is pressed void fun() { printf("fun() starts \n"); printf("Press enter to stop fun \n"); while(1) { if (getchar()) break; } printf("fun() ends \n"); } // The main program calls fun() and measures time taken by fun() int main() { // Calculate the time taken by fun() clock_t t; t = clock(); fun(); t = clock() - t; double time_taken = ((double)t)/CLOCKS_PER_SEC; // in seconds printf("fun() took %f seconds to execute \n", time_taken); return 0; }
Salida: La siguiente salida se obtiene después de esperar alrededor de 4 segundos y luego presionar la tecla enter.
fun() starts Press enter to stop fun fun() ends fun() took 4.017000 seconds to execute
Complejidad de tiempo: O(1)
Espacio Auxiliar : O(1)
¿Cómo encontrar el tiempo que toma un comando/programa en Linux Shell? Referencias: http://www.gnu.org/software/libc/manual/html_node/CPU-Time.html http://www.cplusplus.com/reference/ctime/clock/?kw=clock Escriba comentarios si encuentra algo incorrecto, o desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA