Test Foro de elhacker.net SMF 2.1

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 (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.
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í



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