medir el tiempo de ejecución en C

Iniciado por fafafa01, 13 Diciembre 2016, 18:43 PM

0 Miembros y 1 Visitante están viendo este tema.

fafafa01

Buenas, tengo una duda sobre cual seria la manera mas conveniente y precisa para medir el tiempo de ejecución de un programa. saludos.

ivancea96

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 (cpp) [Seleccionar]
#include <iostream>
#include <ctime>

using namespace std;

int main(){
    clock_t cl = clock();

    // Operaciones

    cout << (clock()-cl)*1000/CLOCKS_PER_SEC << "ms" << endl;
}


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.

kraiked

Yo lo hago así



#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++.