Buenas, tengo una duda sobre cual seria la manera mas conveniente y precisa para medir el tiempo de ejecución de un programa. saludos.
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:
#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.
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++.