Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fafafa01 en 13 Diciembre 2016, 18:43 pm



Título: medir el tiempo de ejecución en C
Publicado por: fafafa01 en 13 Diciembre 2016, 18:43 pm
Buenas, tengo una duda sobre cual seria la manera mas conveniente y precisa para medir el tiempo de ejecución de un programa. saludos.


Título: Re: medir el tiempo de ejecución en C
Publicado por: ivancea96 en 13 Diciembre 2016, 23:01 pm
Para medirlo dentro del programa, cualquier zona de código, basta cojer en un punto el "tiempo", y tras hacer las operaciones que quieras, volverlo a medir y restar:
Código
  1. #include <iostream>
  2. #include <ctime>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.    clock_t cl = clock();
  8.  
  9.    // Operaciones
  10.  
  11.    cout << (clock()-cl)*1000/CLOCKS_PER_SEC << "ms" << endl;
  12. }

clock() te devuelve un "tiempo" relativo al comienzo del programa (más o menos). Si lo vuelves a llamar y los restas, obtendrás la diferencia.

No sé si trabajar con C o con C++. En C++11 o superior también existe std::chrono::high_resolution_clock. Entre otros.


Título: Re: medir el tiempo de ejecución en C
Publicado por: kraiked en 14 Diciembre 2016, 02:44 am
Yo lo hago así

Código:

#include <stdio.h>
#include <time.h>

int main(){

clcok_t tiempo_inicio, tiempo_final;
double segundos;

tiempo_inicio = clock();

/*operación a medir tiempos, operación básica del código, normalmente bucles*/

tiempo_final = clock();

segundos = (double)(tiempo_inicio - timpo_final) / CLOCKS_PER_SEC; /*según que estes midiendo el tiempo en segundos es demasiado grande*/

printf("%f",segundos);


return 0;
}


Así lo hago yo en c, en c++ nunca lo he usado, más que nada porque todavía no he empezado a aprender c++.